从WKWebView执行Java回调

时间:2018-11-23 14:35:32

标签: objective-c wkwebview

每次在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.,但是具有回调处理程序的函数可以吗?

任何想法都将不胜感激。

0 个答案:

没有答案