所以这个问题看起来很简单。我想导入一个外部 JS 文件,将其转换为字符串并将其用于 WebView 中的注入 JavaScript。
例如我试过:
<WebView
source={{ uri: 'https://www.someurl.com/' }}
ref={(wView) => (setWebView(wView))}
javaScriptEnabled
domStorageEnabled
injectedJavaScript={
`
${String(contentScript)};
const ContentScript = contentScript();
`
}
onMessage={receiveMessage}
/>
函数 contentScript 如下所示:
const contentScript = () => {
const exec = {};
// ... More code here
exec.test = () => {
window.ReactNativeWebView.postMessage('test invoked.');
};
return {
exec,
};
};
可悲的是,这在大多数情况下都不起作用,因为它返回一个空的 exec。有时会导致意外的代码,甚至可能导致错误。
所以我在考虑可能创建一些额外的编译,将文件转换为文本并导出字符串。你怎么看?什么是最好的解决方案?
我试图为此寻找解决方案,但没有找到任何明确的解决方案。
仅供参考,我正在使用 EXPO。