Android WebView Inject же Javascript дважды - PullRequest
0 голосов
/ 24 марта 2020

Мне нужно добавить javascript в мой Android веб-просмотр. Я делаю это в onPageFinished() обратном вызове WebviewClient. но проблема в том, что загруженная страница в веб-представлении пытается получить доступ к введенному javascript до onPageFinished() обратного вызова. Поэтому я переместил инъекцию js в onPageStarted(). но что происходит, если инъекция иногда работает неправильно (случайным образом), выдает ошибку undefined.

Есть ли другой способ исправить эту проблему?

Одно решение, которое я нашел, это добавление кода впрыска в onPageStarted() и onPageFinished()

JS Впрыск

webview.loadUrl(
                "javascript:(function() {" +
                    "var parent = document.getElementsByTagName('head').item(0);" +
                    "var script = document.createElement('script');" +
                    "script.type = 'text/javascript';" +
                    "script.innerHTML = window.atob('" + encoded + "');" +
                    "parent.appendChild(script)" +
                    "})()"
            )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...