我最近一直在更改UIWebView為WKWebView基于 iOS WebView 的應用程序。WebView 的 javascript 中有一個window.open函數,彈出窗口調用 opener(parent) 的函數,如下所示// In parent window's javascriptwindow.open('popup' .....)function doIt(){}// In popup window's javascriptwindow.opener.doIt()在 UIWebView 中,我使用了 JSContext,以便彈出窗口可以調用 opener 的 javascript 函數。// Legacy code for communication between 2 UIWebView windows// Not works when using WKWebViewJSContext *parentCtx = [parentWebView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];JSContext *childCtx = [popupWebView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];childCtx[@"window"][@"opener"] = parentCtx[@"window"];但是,似乎JSContext在使用 WKWebView 時不可用。在這種情況下,如何在 javascript 上下文中鏈接兩個 webview?在不更改遺留 javascript 代碼的情況下,我應該怎么做才能調用 opener 的函數?
使用 iOS WKWebView 彈出窗口時從彈出窗口調用 opener 函數
慕勒3428872
2023-03-18 17:25:22