У меня есть скрипт, загруженный в WebView
.Проблема в том, что после использования метода evaluateJavascript()
вновь добавленные JavascriptInterfaces
недоступны для WebView
.Во время сериализации объекта, переданного методу Javascript, я добавляю новый JavascriptInterfaces
.Они существуют в JS после этой операции (я распечатал переданный контент со стороны JS, используя console.log).Когда webView
пытается вызвать их, я получаю Uncaught ReferenceError: Native5 is not defined
, где Native
- это имя добавленного интерфейса JS.
Вот шаги, которые я предпринимаю:
webView.loadUrl(script);
в некотором событии нажатия кнопки в Android Я создаю новый сценарий и передаю его методу JS, во время создания сценария я добавляю новый JavascriptInterfaces
в WebView
webView.evaluateJavascript (prepareScript (), new ValueCallback () {@Override public void onReceiveValue (String value) {}});
private prepareScript () {// Некоторая строкаоперации с данными if (nativeNeeded);webView.addJavascriptInterface (jsHandlerClass, "Native5");return "javascript: updateWebContent (" + data + ") '";}
После этого WebView обновляется, все работает нормально, кроме моего нового добавленного JavascriptInterfaces
.Как я могу заставить его действовать как следует?