JavascriptInterface не работает после evaluteJavascript - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть скрипт, загруженный в WebView.Проблема в том, что после использования метода evaluateJavascript() вновь добавленные JavascriptInterfaces недоступны для WebView.Во время сериализации объекта, переданного методу Javascript, я добавляю новый JavascriptInterfaces.Они существуют в JS после этой операции (я распечатал переданный контент со стороны JS, используя console.log).Когда webView пытается вызвать их, я получаю Uncaught ReferenceError: Native5 is not defined, где Native - это имя добавленного интерфейса JS.

Вот шаги, которые я предпринимаю:

  1. webView.loadUrl(script);

  2. в некотором событии нажатия кнопки в 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.Как я могу заставить его действовать как следует?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...