Swift4 - WkwebView 警告无法向服务 com.apple.WebKit 发出信号

Posted

技术标签:

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

当我在WKWebView 中加载youtube URL 时,我有一个日志。 我在*** 中搜索了我的问题的相同标题。 但这对我不起作用。 我的代码有什么问题? 我使用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)


【问题讨论】:

你也看到这个了吗***.com/questions/44585980/… 是的,它似乎不适合我。 @tolerate_Me_Thx 请检查我的答案。 @tolerate_Me_Thx 如果您已修复错误,请接受我的回答。提前致谢。 【参考方案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.



【讨论】:

以上是关于Swift4 - WkwebView 警告无法向服务 com.apple.WebKit 发出信号的主要内容,如果未能解决你的问题,请参考以下文章

来自钥匙串的 Swift 4 WKWebView 身份验证

Swift 4/5 设置将代理添加到 WKWebview

如何在 Swift 4 中从 WKWebView 获取 cookie 值?

WKWebView target="_blank" 链接在 safari ios11,swift 4 中打开新标签

内存警告后 WKWebView 变为空白

如何在swift 4中从WKWebView中的网页中删除DIV标签?