WebView は ReactNative のコンポーネントであり、ネイティブ WebView を作成することができ、Web ページにアクセスするために使用できます。この記事では主に React Native と WebView 間の通信のサンプル コードを紹介します。今すぐ皆さんと共有して参考にしてください。編集者をフォローして見てみましょう。皆さんのお役に立てれば幸いです。
RN と WebView の間で通信したり、データを転送したり、メッセージ通知を送信したりする必要がある場合があります。このとき、次の知識を使用する必要があります。
1: WebView は RN にデータを送信します。 まず、Web ビューを構築します。
<WebView ref={'webview'} source={require('./index.html')} style={{width: 375, height: 220}} onMessage={(e) => { this.handleMessage(e) }} />
onMessage メソッド、
onMessage 関数があることがわかります
内部実装は、受信したデータを処理することです:
handleMessage(e) { this.setState({webViewData: e.nativeEvent.data}); }
e.nativeEvent .data WebView 内から送信されるデータ
これだけでは Rn 側の処理だけでは不十分です:
window.postMessage でデータを送信するメソッドも記述する必要があります。 RN にデータを送信します。
2: RN が Webview にデータを送信します:
まず、データを送信するメソッドを定義します:
var data = 0; function sendData(data) { if (window.originalPostMessage) { window.postMessage(data); } else { throw Error('postMessage接口还未注入'); } } document.getElementById('button').onclick = function () { data += 100; sendData(data); }
このステップは非常に簡単です。
送信したいデータを書き込みますパラメータとして直接このメソッドで実行するだけです
そして、HTMLでデータを受信する対応するメソッドが必要です:
sendMessage() { this.refs.webview.postMessage(++this.data); }
これでRnとWebview間の通信を実現できます
。ソースコード:
window.onload = function () { document.addEventListener('message', function (e) { document.getElementById('data').textContent = e.data; }); }
web.js:
<!DOCTYPE html> <html lang="en"> <head> <title></title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <p style="text-align: center"> <button id="button">发送数据到react native</button> <p style="text-align: center">收到react native发送的数据: <span id="data"></span></p> </p> <script> var data = 0; function sendData(data) { if (window.originalPostMessage) { window.postMessage(data); } else { throw Error('postMessage接口还未注入'); } } window.onload = function () { document.addEventListener('message', function (e) { document.getElementById('data').textContent = e.data; }); document.getElementById('button').onclick = function () { data += 100; sendData(data); } } </script> </body> </html>
関連する推奨事項:
JS WKWebView で画像をクリックして対話的にサンプルをプレビューします
WebViewを使ってHTMLコードを読み込む方法を詳しく解説
以上がReact NativeとWebview間の通信についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。