React Native の WebView でローカルファイルをロードしてJavascriptを実行する

React Native の WebView でローカルファイルをロードしてJavascriptを実行する:

ReactNativeで開発していてWebViewを使ってローカルファイルをロードしてJavascriptを実行する必要があって日本語の情報なくてちょっと困ったので備忘録として残しておく

だれかの参考になれば幸いです

※ iOSのみ


概要

  • ロードしたいhtmlやそのhtmlが参照しているcssなどはios/external/ 以下に配置する
  • XCodeにexternalを追加する(ドラッグ&ドロップ)
  • WebViewからはsource={{uri: './index.html'}}でアクセスする


ロードするhtmlを index.html とする

index.htmlの中身

index.html
<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <title>Page Title</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" type="text/css" media="screen" href="main.css" /> 
    <script src="main.js"></script> 
</head> 
<body> 
    <div>hoge</div> 
    <div class="test"></div> 
</body> 
</html> 
ファイル配置

ReactNativeRootフォルダ 
└ios 
  └external 
    ├index.html 
    ├main.css 
    └main.js 
render() { 
    const jsCode = `var testElement = document.getElementByClassName('test') 
var appendElement = document.createElement('div') 
appendElement.textContent = 'hugu' 
testElement.appendChild(appendElement) 
` 
    return <View> 
        <WebView 
            source={{uri: './index.html'}} 
            injectedJavascript={jsCode} 
        /> 
    </View> 
} 


参考

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)