Мне нужно, чтобы объект window
моего веб-просмотра был установлен с
nativeBridge = { version: "app/Android" }
Когда страница отображается, js пытается прочитать window.nativeBridge.version
и должен получить app/Android
в качестве ее ценность. До сих пор я пробовал два решения, ни одно из них не работало:
1 / При первой загрузке страницы
loadDataWithBaseURL(
"dummyUrl.com",
"""
<script type='text/javascript'>
window.nativeBridge = { version: "app/Android" };
window.location.replace("${client.url}");
</script>
""".trimIndent(),
"text/html",
"utf-8",
null
)
2 / Я использую WebViewClient
в своем веб-просмотре, поэтому я переопределили эти два
override fun onPageStarted(view: WebView, url: String, favicon: Bitmap?) {
view.loadUrl("""
javascript:(function() {
window.nativeBridge = { version: "app/Android" };
console.log("onPageStarted: " + window.nativeBridge.version);
})()
""".trimIndent())
}
override fun onPageFinished(view: WebView, url: String) {
view.loadUrl("""
javascript:(function() {
console.log("onPageFinished: " + window.nativeBridge);
})()
""".trimIndent())
}
Сообщение об ошибке консоли: "onPageFinished: [object Object]", source: (1)
Что нужно сделать, чтобы убедиться, что объект window
установлен правильно?
Примечание: client.url
вызывает несколько переадресаций, я не знаю, изменит ли это что-либо.