每次在WKWebview
中加载新的URL时,我都需要执行javascript回调函数。以下是JavaScript函数:
networkRequestCallback: function(callback) {
exec(callback, null, 'IonicWebView', 'networkRequestCallback', []);
}
现在,我确实知道在WKWebview
中的webView:decidePolicyForNavigationAction:decisionHandler:
中触发它的位置,但是我不确定执行上述JavaScript的代码。
所以我想出了这两个(不确定它是否正确):
1。
NSString *exec_template = @"networkRequestCallback(\"received: %@\");";
NSString *exec = [NSString stringWithFormat:exec_template, version];
[_webView evaluateJavaScript:exec completionHandler:nil];
2。
JSContext *tmpContext = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
[tmpContext[@"networkRequestCallback"] callWithArguments:@[@urlPath]];
我确实知道JavaScript函数是否不是回调类型(例如func myFunction() {}
),可以使用1.,但是具有回调处理程序的函数可以吗?
任何想法都将不胜感激。