Ответ 1
У меня была та же проблема и исправлена ее добавлением слушателя событий в документ вместо окна. Изменение:
window.addEventListener("message", ...
в
document.addEventListener("message", ...
Я не могу заставить React Native WebView postMessage работать. Приложение React Native успешно получает сообщение messaget из веб-приложения. Но веб-приложение не получает сообщения sendt из приложения React Native.
Мое простое веб-приложение
<html>
<body>
<button>Send post message from web</button>
<div>Post message log</div>
<textarea style="height: 50%; width: 100%;" readonly></textarea>
<script>
var log = document.querySelector("textarea");
document.querySelector("button").onclick = function() {
console.log("Send post message");
logMessage("Sending post message from web..");
window.postMessage("Post message from web", "*");
}
window.addEventListener("message", function(event) {
console.log("Received post message", event);
logMessage(event.data);
}, false);
function logMessage(message) {
log.append((new Date()) + " " + message + "\n");
}
</script>
</body>
</html>
У меня была та же проблема и исправлена ее добавлением слушателя событий в документ вместо окна. Изменение:
window.addEventListener("message", ...
в
document.addEventListener("message", ...
5-я версия response-native-webview меняет работу этого поведения. Теперь вы хотите:
window.ReactNativeWebView.postMessage(data);
В Android
document.addEventListener("message", function(event) {
alert("This is a Entry Point Working in android");
init(event.data)
});
В iOS
windows.addEventListener("message", function(event) {
alert("This is a Entry Point Working in iOS");
init(event.data)
});