【问题标题】:Swift4 - WkwebView warning of Could not signal service com.apple.WebKitSwift4 - WkwebView 警告无法向服务 com.apple.WebKit 发出信号
【发布时间】:2018-04-13 09:53:43
【问题描述】:

当我在WKWebView 中加载youtube URL 时,我有一个日志。
我在stackOverFlow 中搜索了我的问题的相同标题。
但这对我不起作用。
我的代码有什么问题?
我使用swift4 & xcode9.2
谢谢。

Transport 也设置为 true。

这样的警告:

无法向服务 com.apple.WebKit.Networking 发出信号:113:找不到指定的服务

import UIKit
import WebKit

class DetailViewController: UIViewController {

var videoId: String = ""
var videoTitle: String = ""

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.

    loadUI()
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

func loadUI() {

    view.backgroundColor = UIColor.white

    naviSetting()
    webViewSetting()
}

func naviSetting() {

    self.title = videoTitle
}

func webViewSetting() {

    let webview = WKWebView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height))

    let url = URL(string: "https://www.youtube.com/watch?v=\(self.videoId)")
    let request = URLRequest(url: url!)
    webview.load(request)
    self.view.addSubview(webview)
}
}

【问题讨论】:

  • 是的,它似乎不适合我。
  • @tolerate_Me_Thx 请检查我的答案。
  • @tolerate_Me_Thx 如果您已修复错误,请接受我的回答。提前致谢。

标签: ios swift wkwebview


【解决方案1】:

我尝试对参数进行编码,它对我来说工作正常。请检查以下代码。

var wkWebView = WKWebView()

override func viewDidLoad()
{
    super.viewDidLoad()

    self.automaticallyAdjustsScrollViewInsets = false
    self.wkWebView.translatesAutoresizingMaskIntoConstraints = false
    self.wkWebView.frame =  CGRect.init(x: 0, y: 0, width: self.wkWebView.frame.size.width, height: self.wkWebView.frame.size.height)
    self.view.addSubview(wkWebView)

    loadUrl()
}
override func viewWillLayoutSubviews()
{
    super.viewWillLayoutSubviews()
    self.wkWebView.frame =  CGRect.init(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height)
    self.wkWebView.contentMode = .scaleAspectFit
}
func loadUrl()
{
    let webConfiguration = WKWebViewConfiguration()
    webConfiguration.allowsInlineMediaPlayback = true

    let url_join = "v=1p38GWfCIhQ"

    let myURL = URL(string: "https://www.youtube.com/watch?")
    var myRequest = URLRequest(url: myURL!)
    myRequest.httpMethod = "POST"
    myRequest.httpBody = url_join.data(using: String.Encoding.utf8)
    wkWebView.load(myRequest)
}

我希望它也对你有用。 :)

【讨论】:

    【解决方案2】:

    对我来说,这段代码运行良好。 请注意,我使用的是 http:// 而不是 https://。 但是您已经设置了 http:// 的设置。

    import UIKit
    import WebKit
    
    class ViewController: UIViewController, WKNavigationDelegate {
    
    @IBOutlet weak var webView: WKWebView!
    private let url = URL(string: "http://www.google.com")
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        let request = URLRequest(url: url!)
        webView = WKWebView(frame: self.view.frame)
        self.view.addSubview(webView)
        webView.navigationDelegate = self
        webView.load(request)
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多