Setting onMessage on a WebView overrides

[react-native雜記03]使用 react-native 原生內建的 WebView 在想要 bind onMessage Event 時,就會發生錯誤 Setting onMessage on a WebView overrides … 的錯誤

先說明一點,在使用 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 的內容進行修改。

 

 

標籤: , , , ,

很愛畫虎爛的我,開始了用文章唬爛社會大眾的志業!