各位大神们,react 与原生客户端 webview 的交互有 demo 么?比如我用WebViewJavascriptBridge简单实现了和 iOS 客户端的交互,但是不知道怎么和 react 整合在一起?
谢谢了~
PS:暂时使用的是 react,非 react-native。暂时针对的是 iOS 平台。
高洛峰2017-04-17 17:53:55
既然你都實作了WebViewJavascriptBridge和前端的互動了,就當做普通的js呼叫即可,跟你使用react和不使用react沒有任何關係。
native和js的交互,其實就是暴露一些方法而已,native是暴露在WebViewJavascriptBridge對像上的,而js通常是暴露在window對像上的(因為處理過前端和App的交互,所以知道,可以不一定暴露在window物件上,可以自訂一個物件)。你這裡所謂的和react整合,我不知道是否你的意思,native直接呼叫react.xxx方法。
剛剛說了的,可以暴露在自訂物件上的,當然也可以透過react物件暴露給native。但是,不推薦這樣。主要有以下幾個原因:
1.這樣很容易和react產生耦合,甚至衝突;
2.其實我甚至不推薦,直接前端暴露方法給native調用(除非必須)。因為native呼叫前端方法的效率是很低的(尤其是Android,相對前端呼叫native方法)。我推薦採取回調的方式,這樣native不會依賴前端的方法。
要注意的是,你這裡所說的react應該是React.js,而不是React Native。
黄舟2017-04-17 17:53:55
如果你說的是React Native自己封裝的webview,很遺憾,沒法js直接交互,只能透過url hash,ios可以攔截跳轉請求android暫時不支援
不過貌似有個第三方支援js互動的webview