【问题标题】:How to listen web page postMessage event in WKWebview? [duplicate]如何在 WKWebview 中监听网页 postMessage 事件? [复制]
【发布时间】:2019-12-24 20:35:09
【问题描述】:

我让我的 WKWebview 加载这样的网页:

class SafariExtensionViewController: SFSafariExtensionViewController, WKNavigationDelegate {

    static let shared = SafariExtensionViewController()
    var webView: WKWebView!

    override func loadView() {
        let webConfiguration = WKWebViewConfiguration()
        self.preferredContentSize = NSMakeSize(400, 600)
        webView = WKWebView(frame: .zero, configuration: webConfiguration)
        webView.navigationDelegate = self
        view = webView
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        let myURL = URL(string: frameUrl)
        let myRequest = URLRequest(url: myURL!)
        webView.load(myRequest)
        os_log("EXTEST the WKWebview has loaded")
    }

}

在我的 localhost web 服务 js 文件中,我添加了一个发布消息事件

window.parent.postMessage(message, '*')

现在我尝试在我的 swift 代码中监听这个事件,这可能吗?

【问题讨论】:

标签: javascript swift wkwebview safari-app-extension


【解决方案1】:

可以对 JavaScript 回调做出反应。检查WKWebViews evaluateJavaScript: 方法。

https://developer.apple.com/documentation/webkit/wkwebview/1415017-evaluatejavascript

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 2023-02-07
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    • 2013-03-02
    • 1970-01-01
    相关资源
    最近更新 更多