站长资讯网
最全最丰富的资讯网站

深入浅析React Native与web的基本交互(附代码)

之前的文章《教你怎么使用css3给图片添加渐变效果(代码详解)》中,给大家介绍怎么使用css3给图片添加渐变效果。下面本篇文章给大家介绍一下React Native与web的基本交互,有一定的参考价值,有需要的朋友可以参考一下。

React Native和H5交互

//接收来自H5的消息 onMessage = (e) => {   Log("WebView onMessage 收到H5参数:", e.nativeEvent.data);   let params = e.nativeEvent.data;   params = JSON.parse(params);   Log("WebView onMessage 收到H5参数 json后:", params); };  onLoadEnd = (e) => {   Log("WebView onLoadEnd e:", e.nativeEvent);   let data = {     source: "from rn",   };   this.web && this.web.postMessage(JSON.stringify(data)); //发送消息到H5 }; <WebView   ref={(webview) => {     this.web = webview;   }}   style={{     width: "100%",     height: "100%",     justifyContent: "center",     alignItems: "center",   }}   source={require("../data/testwebview.html")}   onLoadEnd={this.onLoadEnd} //加载成功或者失败都会回调   onMessage={(e) => this.onMessage(e)}   javaScriptEnabled={true} //指定WebView中是否启用JavaScript   startInLoadingState={true} //强制WebView在第一次加载时先显示loading视图   renderError={(e) => {     return <View />;   }} />;

H5和React Native交互

<!DOCTYPE html> <html>   <head>     <meta charset="UTF-8" />     <title>text webview</title>     <script type="application/javascript">       //相互通信只能传递字符串类型       function test() {         //发送消息到rn         let params = {           msg: "h5 to rn",           source: "H5",         };         window.postMessage(JSON.stringify(params)); //发送消息到rn       }        window.document.addEventListener("message", function (e) {         //注册事件 接收数据         const message = e.data; //字符串类型         console.log("WebView message:", message);         window.postMessage(message);       });     </script>   </head>   <body>     <h1>chuchur</h1>     <button onclick="test()">单击</button>   </body> </html>

注意事项

假如你的WebView是从react-native里引用的话。H5RN发消息则使用window.postMessage(message)为了减少React Native的表面积,将从React Native核心中删除,推荐使用

import { WebView } from "react-native"; //会被移除 //to import { WebView } from "react-native-webview";

假如是用react-native-webview引入则通讯方式使用window.ReactNativeWebView.postMessage(message)

有关

赞(0)
分享到: 更多 (0)
网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号