先說明一點,在使用 react-native WebView 的時候,不是每個人都需要 onMessage event的。所以你可能更本就不需要解這個問題。只有在你的 WebView需要和原生應用交互。也就是你的網頁需要和 react-native進行通訊。才需要用到 onMessage
錯誤訊息如下,
Setting onMessage on a WebView overrides existing values of window.postMessage, but a previous value was defined.
解決方法參考了在 react-native 由網友 jacobp100 提交的 pull request ,但是此 pull request 目前還沒有被 merge。
Remove errors for detecting native postMessage #10941
https://github.com/facebook/react-native/pull/10941
修改的內容就是這個 commit
https://github.com/facebook/react-native/pull/10941/commits/b078d65a33c4c4b3cbd2b035e3568bf56b6bde26
主要就是刪除這兩個檔案中的部分程式碼。
1. your_project_name/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java
2. your_project_name/node_modules/react-native/React/Views/RCTWebView.m
有需要使用的,可以參考 commit 的內容進行修改。