検索

ホームページ  >  に質問  >  本文

JavaScript - クライアントとフロントエンドの通信について質問がありますか?

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

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

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

リーリー

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

大家讲道理大家讲道理2747日前617

全員に返信(1)返信します

  • 天蓬老师

    天蓬老师2017-05-16 13:29:34

    私の理解では、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
  • キャンセル返事