ReactNative – Webview不在Android上执行injectJavaScript

前端之家收集整理的这篇文章主要介绍了ReactNative – Webview不在Android上执行injectJavaScript前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我无法在ReactNative上获取Webview以在物理 Android设备上执行注入的 JavaScript.在过去的两天里,我尽可能地搜索网络,但仍未找到解决方案.测试结果如下:

> iOS模拟器 – 一切都很好
> iPhone – 一切都很好
> Android模拟器 – 一切都很好
>物理设备,索尼Xperia Z2,索尼Xperia Z5 Compact和LG G4 – 没什么

我的Webview定义如下:

<WebView
  style={styles.webView}
  source={{
    html: html,baseUrl: 'web/'
  }}
  injectedJavaScript={'render(' + JSON.stringify(this.state.data) + ');'}
  javaScriptEnabledAndroid={true}
  scrollEnabled={false}
  bounces={false}
  renderLoading={() => <LoadingIndicator />}
/>

我也尝试过指定javaScriptEnabled,但无济于事.我还尝试使用较小的脚本来对页面上的元素进行着色,或者使用window.postMessage将消息发回给应用程序,但没有任何反应.我需要将数据注入HTML,这将根据提供的数据为我呈现图形.我最后的办法是手动构建HTML,并附加数据作为提供给Webview的标记的一部分,但我真的希望保持简单,让它按照应有的方式工作.

我正在使用最新版本的ReactNative(0.41),手机正在运行Android 6.

解决方法

我刚刚发现Android WebView似乎将任何JS注入单行,即使它包含换行符.这意味着缺少分号肯定会导致问题,或者在我的情况下,由//分隔的注释.使用/ *和* /注释让我注入的JavaScript再次运行.

猜你在找的Android相关文章