我有一个文件content.js,其中包含一些 JavaScript 代码,我想使用injectedJavaScript.
我试过:
fetch('./content.js').then((result) => {
result = result.text();
this.setState(previousState => (
{contentScript: result}
));
});
Run Code Online (Sandbox Code Playgroud)
但它没有得到正确的文件。
const contentScript = require('./content.js');
Run Code Online (Sandbox Code Playgroud)
这是可行的,但它会立即评估 JavaScript,而且我似乎找不到在执行之前将其转换为字符串的方法。
解决方案是将 的代码复制content.js到字符串中,但是当我想编辑代码时,这会很烦人......
有谁知道更好的解决方案?
我已经快一周了仍然没有解决这个问题。:(
使用的版本:
"expo": "^36.0.2",
"react": "16.9.0",
"react-dom": "^16.8.6",
"react-native": "0.61.4",
"react-native-web": "0.11.7",
"react-native-webview": "^8.1.2"
Run Code Online (Sandbox Code Playgroud)
使用的 React Native 代码:
<WebView
source={{uri: 'https://www.somedomain.com/'}}
style={{marginTop: 22, flex: 1}}
injectedJavaScript={this.state.contentScript}
domStorageEnabled={true}
startInLoadingState={true}
onMessage={this.receiveMessage}
ref={this.props.webview}
/>
Run Code Online (Sandbox Code Playgroud)
网页版上只有红色边框,而 Android 版则可以正常加载。
不存在错误。这可能是一个已知问题吗?但我在任何地方都找不到报道。