Мне нужно выполнять функцию обратного вызова javascript каждый раз, когда в WKWebview
загружается новый URL.Ниже приведена функция JavaScript:
networkRequestCallback: function(callback) {
exec(callback, null, 'IonicWebView', 'networkRequestCallback', []);
}
Теперь я знаю место для ее запуска в WKWebview
, что в webView:decidePolicyForNavigationAction:decisionHandler:
, но я не уверен, какой код выполнять вышеупомянутый JavaScript.
Итак, я пришел с этими 2 (не уверен, что это правильный путь):
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. можно использовать, но возможно ли это для функции с обработчиком обратного вызова?
Любые идеи будут высоко оценены.