2016-11-23 15 views
2

私のReactネイティブプロジェクトのWebViewに外部JavaScriptファイルを含めることを試みています。私が含めるファイルには、npmで公開されていない第三者図書館が含まれています(ES5以降は不可)。 React NativeプロジェクトのWebViewに自分のJSファイルをインポートしたり、npmモジュールにしたりせずにJSファイルを注入するためのソリューションが必要です。ReactネイティブAppのWebViewに外部JavaScriptファイルを含めます

私は、次の方法を試してみましたが、何も今のように動作しません:答え、次のinjectedJavaScriptInsert script tag

  • 私は動的にスクリプトをロードしようとしている:私はこのようなスクリプトをロードしようとしてい

    これは私の外部AppGeneral.jsです:

    function AppGeneral(){ 
        alert("Ok"); 
    } 
    var app = new AppGeneral(); 
    

    これは私のindex.ios.jsファイルです:

    export default class sampleReactApp extends Component { 
        render() { 
    
        let HTML = ` 
        <html> 
         <head> 
         <script type="text/javascript" src="js/AppGeneral.js"></script> 
         </head> 
         <body> 
         <div id="workbookControl"></div> 
          <div id="tableeditor">editor goes here</div> 
          <div id="msg" onclick="this.innerHTML='&nbsp;';"></div> 
         </body> 
        </html> 
        `; 
    
        let jsCode = ` 
        alert("Js"); 
        `; 
        return (
         <View style={styles.container}> 
          <WebView 
           style={styles.webView} 
           ref="myWebView" 
           source={{ html: HTML }} 
           injectedJavaScript={jsCode} 
           javaScriptEnabledAndroid={true} 
          > 
          </WebView> 
         </View> 
        ); 
        } 
    
    } 
    
  • +0

    なぜコードを実行するためにwebviewを使用したいですか? –

    +0

    @MartinCup My JSファイルはJS Spreadsheetエンジンです。ライブラリ全体をモジュールに変換してimportステートメントで使用することは、最適な解決策ではありません。したがって、このファイルを* cordova *ベースのアプリ、つまりwebviewで使用するように含めることにしました。最高のアプローチをお勧めします。 –

    答えて

    0

    たぶん、あなたは資産としてあなたのJSファイルをバンドルしてみてください、その後、あなたは「ネイティブ」WebViewのと同じようにファイルを参照することができます。この回答をAndroidとiOSの場合は[1]と[2]にしてください。

    +0

    私も、これが解決策だと思っています –

    関連する問題