应用网络视图时遇到了挑战。我想将Javascript函数注入到Webview中,但是它只能在iOS中运行,而不能在Android中运行。
查看我的代码:
Webview:
<WebView
source={{uri:"http://mywebview.com/webview.php"}}
injectedJavaScript={jsCode}
mixedContentMode={'compatibility'}
javaScriptEnabledAndroid={true}
style={{height: 300}} />
要注入的JSCode:
let jsCode = `function doPopUp() {
document.querySelector('#myBody').style.backgroundColor = 'red';
alert('hello world from webview');
}`;
在iOS中它可以正常工作,但在Android中则不能。如果我没有注入JS(i 将其直接放在php文件中),然后在Android浏览器中打开即可 精细。为您提供的其他信息是,如果我没有将语法放入js函数中,则效果很好。为什么?以及如何解决?
答案 0 :(得分:3)
对于 android,在添加 javascript 函数时,我们需要将其添加为 DOM 的一部分。为此,将 jsCode 中的 function
替换为 document
。
let jsCode = `docuement.doPopUp() {
document.querySelector('#myBody').style.backgroundColor = 'red';
alert('hello world from webview');
}`;