Мне нужно добавить 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)" +
"})()"
)