我尝试从webview的injectionJavascript调用一个函数,在android中它可以正常工作,但是在IOS上却不起作用,您能帮我这个吗,这是我的webview:
<View style={container}>
<WebView
javaScriptEnabled={true}
domStorageEnabled={true}
injectedJavascript={this.jsCode.bind(this)}
onNavigationStateChange={this.onNavigationStateChange}
source={webapp}
ref="WEBVIEW_REF"
style={webView}
decelerationRate="fast"
/>
</View >
我的功能是:
jsCode() {
let linn ='document.querySelector(".spl-bg2").style.color="blue";';
return linn;
}
答案 0 :(得分:1)
injectedJavaScript 应该是一个字符串,在WebView加载时会被评估为javascript,因此在您的情况下,它应该像这样
let linn ='document.querySelector(".spl-bg2").style.color="blue";';
return(
<View style={container}>
<WebView
javaScriptEnabled={true}
domStorageEnabled={true}
injectedJavaScript ={linn}
onNavigationStateChange={this.onNavigationStateChange}
source={webapp}
ref="WEBVIEW_REF"
style={webView}
decelerationRate="fast"
/>
</View>)
更新
这是上面的一个有效示例,该示例在网站上运行并更改找到的第一段的颜色:
https://snack.expo.io/rJHiavAwX
看看它,也许您会发现您的问题。请注意,道具名称为InjectionJavaScript,而不是示例中的Java注入。