各位大神们,react 与原生客户端 webview 的交互有 demo 么?比如我用WebViewJavascriptBridge简单实现了和 iOS 客户端的交互,但是不知道怎么和 react 整合在一起?
谢谢了~
PS:暂时使用的是 react,非 react-native。暂时针对的是 iOS 平台。
高洛峰2017-04-17 17:53:55
이제 WebViewJavascriptBridge와 프런트 엔드 간의 상호 작용을 구현했으므로 이를 일반 js 호출로 처리하면 됩니다. 반응 사용 여부와는 아무 관련이 없습니다.
네이티브와 js 간의 상호 작용은 실제로 일부 메서드를 노출하는 것뿐입니다. Native는 WebViewJavascriptBridge 개체에 노출되는 반면 js는 일반적으로 window 개체에 노출됩니다(프론트 엔드와 앱 간의 상호 작용을 다루었기 때문에 저는 필요하지 않다는 것을 알고 있어야 합니다. 창 개체에 노출되어야 하며 개체를 사용자 정의할 수 있습니다. 여기서 반응과의 통합이라고 부르는 것이 네이티브가 React.xxx 메서드를 직접 호출한다는 뜻인지는 모르겠습니다.
방금 말씀드린 내용은 Custom 객체에 노출될 수 있음은 물론, React 객체를 통해 Native에도 노출될 수 있습니다. 그러나 이는 권장되지 않습니다. 주로 다음과 같은 이유가 있습니다:
1. 이는 쉽게 결합을 일으키거나 심지어 반응과 충돌할 수도 있습니다.
2. 사실 저는 네이티브 호출을 위해 메소드를 직접 노출하는 것을 권장하지 않습니다. ). 네이티브 호출 프런트엔드 메서드의 효율성이 매우 낮기 때문입니다(특히 Android의 경우 프런트엔드 호출 네이티브 메서드와 비교할 때). 네이티브가 프런트엔드 메서드에 의존하지 않도록 콜백을 사용하는 것이 좋습니다.
여기서 말하는 React는 React Native가 아니라 React.js여야 한다는 점에 유의하세요.
黄舟2017-04-17 17:53:55
React Native로 캡슐화된 webview에 대해 이야기한다면, js와 직접적인 상호작용은 없습니다. iOS는 점프 요청을 가로챌 수 있으며, Android는 당분간 이를 지원하지 않습니다. 🎜> 하지만 제3자 지원이 있는 것 같습니다