Выполнить обратный вызов Javascript из WKWebView - PullRequest
0 голосов
/ 23 ноября 2018

Мне нужно выполнять функцию обратного вызова 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. можно использовать, но возможно ли это для функции с обработчиком обратного вызова?

Любые идеи будут высоко оценены.

...