0

所以这个问题看起来很简单。我想导入一个外部 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。

4

0 回答 0