各位大神们,react 与原生客户端 webview 的交互有 demo 么?比如我用WebViewJavascriptBridge简单实现了和 iOS 客户端的交互,但是不知道怎么和 react 整合在一起?
谢谢了~
PS:暂时使用的是 react,非 react-native。暂时针对的是 iOS 平台。
光阴似箭催人老,日月如移越少年。
WebViewJavascriptBridge とフロントエンドの間の対話を実装したので、それを通常の JS 呼び出しとして扱います。react を使用するかどうかとは関係ありません。
ネイティブと js の間の対話は、実際にはいくつかのメソッドを公開しているだけです。ネイティブは WebViewJavascriptBridge オブジェクトで公開されていますが、js は通常 window オブジェクトで公開されています (フロントエンドとアプリの間の対話を扱っているため、ウィンドウ オブジェクト上で公開する必要はありません。オブジェクトはカスタマイズできます)。 React との統合と呼ばれるものは、ネイティブが直接、react.xxx メソッドを呼び出すことを意味しているかどうかはわかりません。
今述べたことは、カスタム オブジェクトに公開することもできます。もちろん、反応オブジェクトを通じてネイティブに公開することもできます。ただし、これはお勧めできません。主な理由は次のとおりです。 1. これにより、簡単に結合が発生したり、場合によっては React と競合したりする可能性があります。実際には、(必要な場合を除いて) フロントエンドでメソッドを公開することはお勧めしません。 )。フロントエンド メソッドを呼び出すネイティブの効率は非常に低いためです (特に Android は、フロントエンド メソッドを呼び出すネイティブ メソッドと比較して)。ネイティブがフロントエンド メソッドに依存しないように、コールバックを使用することをお勧めします。
React Native によってカプセル化された WebView について話している場合、残念ながら、js との直接のやり取りはありません。iOS はジャンプ リクエストをインターセプトすることができ、Android は当面それをサポートしません。 🎜> ただし、js 対話型 Webview はサードパーティでサポートされているようです
WebViewJavascriptBridge とフロントエンドの間の対話を実装したので、それを通常の JS 呼び出しとして扱います。react を使用するかどうかとは関係ありません。
ネイティブと js の間の対話は、実際にはいくつかのメソッドを公開しているだけです。ネイティブは WebViewJavascriptBridge オブジェクトで公開されていますが、js は通常 window オブジェクトで公開されています (フロントエンドとアプリの間の対話を扱っているため、ウィンドウ オブジェクト上で公開する必要はありません。オブジェクトはカスタマイズできます)。 React との統合と呼ばれるものは、ネイティブが直接、react.xxx メソッドを呼び出すことを意味しているかどうかはわかりません。
今述べたことは、カスタム オブジェクトに公開することもできます。もちろん、反応オブジェクトを通じてネイティブに公開することもできます。ただし、これはお勧めできません。主な理由は次のとおりです。
ここで話している反応は React Native ではなく React.js である必要があることに注意してください。1. これにより、簡単に結合が発生したり、場合によっては React と競合したりする可能性があります。実際には、(必要な場合を除いて) フロントエンドでメソッドを公開することはお勧めしません。 )。フロントエンド メソッドを呼び出すネイティブの効率は非常に低いためです (特に Android は、フロントエンド メソッドを呼び出すネイティブ メソッドと比較して)。ネイティブがフロントエンド メソッドに依存しないように、コールバックを使用することをお勧めします。
React Native によってカプセル化された WebView について話している場合、残念ながら、js との直接のやり取りはありません。iOS はジャンプ リクエストをインターセプトすることができ、Android は当面それをサポートしません。 🎜> ただし、js 対話型 Webview はサードパーティでサポートされているようです