JavaScript - クライアントとフロントエンドの通信について質問がありますか?
大家讲道理
大家讲道理 2017-05-16 13:27:34
0
1
615

クライアントは WebViewClient类的shouldOverrideUrlLoading メソッドを使用して、フロントエンドとクライアント間の通信を処理します。この場合、フロントエンドはクライアントの処理コールバックをどのようにして知るのでしょうか?
状況は以下の通りです

  1. フロントエンドは、現在のユーザーの取得など、特定のプロトコルのアドレスを送信しますjsbridge://bridge/userid

  2. クライアントはこの負荷をキャプチャし、フロントエンドへの値の書き込みなどの操作の実行を開始しますjavaScript:window.userId=12121

リーリー

このシナリオでは何をすべきですか?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全員に返信(1)
Peter_Zhu

私の理解では、JSBridge を理解するには、最終的に 3 つのことを理解する必要があります。1 つは H5 がどのように Native を呼び出すか、もう 1 つは Native が H5 を呼び出す方法、そして最後の 1 つは 2 つの間のコールバックです。

  • H5 でネイティブを呼び出す方法、インターネット上のメソッドはすべて同じです。つまり、WebView が H5 ページをロードするときに、

    のメソッドを呼び出し、そのうちの 1 つを選択して H5 データをインターセプトし、それを渡します。処理のためにネイティブに移行しますWebChromeClient或者是WebviewClient

  • ネイティブが H5 を呼び出す方法、最終的には

    このメソッドですwebview.loadUrl(javascript:yourFunc(data););会把数据传给H5并执行H5中的yourFunc

  • 両者間のコールバックとは、Native または H5 が相手の通​​話を処理した後、相手が使用できるように結果を相手に返すことを意味します。本質は、タイムスタンプまたはその他の一意の識別子、つまり

    Map(UniqueID,Callback),并把此唯一标示UniqueID传给对方函数,对方执行完毕后,会把这个唯一标示UniqueID和返回数据data传回来,然后通过这个UniqueID找到调用函数CallBack,然后执行CallBack(data)

    を使用して、Map を介して呼び出し関数 Callback を編成することです。
2 番目の点で迷っていることがあなたの説明からわかります。H5 で JS メソッドを記述する必要があります。 リーリー

ネイティブでデータを取得した後、次を実行します:

webview.loadUrl(javascript:getUseID(userid););H5の

メソッドが呼び出されて実行され、Nativeからのデータが正常に受信されます

getUseID完全な JSBridge の場合は、上記の 3 番目の点を考慮する必要があります。

あなたは Android ハイブリッドを開発していて、車輪を与えるには JSBridge が必要です。読んだら良いです



http://www.cnblogs.com/dailc/...

  • http://blog.csdn.net/qq_23547...

  • http://zjutkz.net/2016/04/17/...

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート