为什么反应本机Webview注入Javascript在IOS上不起作用?

时间:2018-09-05 20:23:40

标签: react-native

我尝试从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;
 }

1 个答案:

答案 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注入。