React Native解决Android的WebView无法执行injectedJavaScript代码

需求

在用WebView组件写一个东西,要求功能:打开web后进行js代码注入。

开发

代码很简单,示例:

const js = `
alert(1);
alert(2);
`;
<WebView
  source={{ uri: 'http://web.com' }}
  injectedJavaScript={js}
/>

测试

以上代码在iOS中完美执行,但是在Android中却始终无法执行!

解决

调试了好久这个bug,一开始以为是AndroidWebkit内核不支持一些新特性,后来发现还是不行。

最后一摸二去,才了解真正引发bug的原因:注入的js代码超行了。。

所以解决办法很简单:

把要injectjs进行压缩成一行即可。。