Enter react-native-webview-bridge
, a JavaScript bridge between your React Native app and a WebView contained inside it:
var WebViewBridge = require('react-native-webview-bridge');
const injectScript = `
(function () {
if (WebViewBridge) {
WebViewBridge.onMessage = function (message) {
if (message === "hello from react-native") {
WebViewBridge.send("got the message inside webview");
}
};
WebViewBridge.send("hello from webview");
}
}());
`;
var Example = React.createClass({
onBridgeMessage: function (message) {
const { webviewbridge } = this.refs;
switch (message) {
case "hello from webview":
webviewbridge.sendToBridge("hello from react-native");
break;
case "got the message inside webview":
console.log("we have got a message from webview! yeah");
break;
}
},
render: function() {
return (
<View>
<WebViewBridge
ref="webviewbridge"
onBridgeMessage={this.onBridgeMessage}
javaScriptEnabled={true}
injectedJavaScript={injectScript}
source={require('./test.html')}/>
</View>
);
}
});
module.exports = Example;
React Native Webview with Javascript Bridge →
Related: JockeyJS