文章はJs Bridgeを理解しています.


JSブリッジとは何ですか
多くのAPPの開発過程で、H 5を通して一部の機能を実現します.Hybiird APPの90%以上はH 5です.今は生粋のアプリが少ないです.しかし、H 5ページは元のアプリケーションに埋め込まれたWebViewコンポーネントであり、携帯ブラウザJavascriptエンジンは一つのサンドボックス環境で動作するため、JavaScriptの権限は厳しく制限されています.したがって、JavaScriptがこれらの制限された能力を使用する場合は、原生に委託して実現し、原生が完成したら、結果をJavaScriptに通知する必要があります.したがって、JavaScriptと原生の間には通信の架け橋が必要です.この橋は本質的に原生のブラウザーコンポーネントです.一般的にWebView JavaScript Bridgeと呼ばれていますが、簡単のためにJS bridgeと略称されます.説明が必要なのは、原生とは携帯端末(Android、IOS)上の原生コード開発の部分だけではなく、Windows、MAC上のものでもいいので、原生という言葉は主にH 5を区別するためであり、本文ではモバイル端末のJs Bridgeだけを議論する.
モバイル開発の勢い
今年は、動的化がモバイル開発の主流であり、ダイナミック化とは随時にAPPを更新できる能力を指しています.これは原生アプリケーションの修正を克服するために、再発行しなければならない天然の不足です.現在ダイナミック化されている技術は主に4つあります.熱パッチ、ハイブリッド開発フレーム(React-Native、Weexなど)、純粋なWeb APP、原生加H 5(常に更新される部分はH 5で実現する必要があります).その中にはホットパッチ技術は主にいくつかのオンラインバグを修復するために使われていますが、主流の開発には使われていません.もちろん、ホットパッチ技術に基づくサブスクリプションもあります.残りの3つの案はいずれもJavascriptと原生の協力によって実現されました.それらはJs Bridgeを使っています.いいJs Bridgeを使うことの重要性が分かります.異なるハイブリッド開発の枠組み、Web APPではJs Bridgeの実現と通信プロトコルは違っています.もちろん、これらの開発フレームワークを使うなら、該当フレームの下の通信プロトコルを知るだけでいいです.これは問題ありません.しかし、原生加H 5のAPPを採用するには、自分で適当なJs Bridgeを選ぶ必要があります.開発者にとって、何がいいかというと、JavaScript Bridgeですか?
良いJSブリッジとは何ですか?
利用可能性
通信の需要、機能の充実を満たすことができます.もちろん全部使えないなら、家に帰って洗って寝ます.
頑健性
丈夫とは試練に耐えられることであり、bugが少なく、互換性が良く、様々な状況で安定して運行できる.しかし、恐ろしいことに、既存の有名なオープンソースjs bridgeの品質には深刻な問題が存在しています.以下は私が2つの有名なAndroid JS Bridgeのオープンソースライブラリの下で提起した問題です.
  • https://github.com/lzyzsd/JsB...
  • https://github.com/jesse01/We...
  • いい橋を作るのは大変です.
    クロス・プラットフォーム
    同じJavascriptコードがAndroidとIOSで同時に正常に運行されることを保証するために、良いJavaScript Bridgeはプラットフォームを横断することができます.これでAndroidとIOSとH 5の通信プロトコルが一致することが保証されます.しかし、現在Github万starのmacuswestin/WebView JavascriptBridge公式もIOS版だけを提供しています.いくつかの第三者Androidが実現していますが、多くは様々な問題があります.重大なバグがあります.https://github.com/jesse01/We... あるのはIOS版と違います.https://github.com/fangj/WebV... .
    安全
    セキュリティは非常に重要であり、現在いくつかのAndroid実装ではwebview.addJavascriptInterfaceを使用していますが、Android 4.2.2の前にwebview.addJavascriptInterfaceに任意のコードの実行ホールがあり、これは重大なセキュリティ問題を引き起こします.
    使うのは簡単です
    いいものは使いやすいはずです.
    JS Bridgeにとって、使用は簡単に三つの端を含むべきです.Android、IOS、JavaScript、つまりどの端に対しても、十分に簡単に使うべきです.これは重要です.大量の原生開発と先端開発の破壊を避けることができます.
    強い
    利用可能性を満たし、簡単に使う上で、できるだけ強力に機能します.現在の多くの実現は基本的に利用可能性だけを満たしていますが、機能面では弱いです.
  • は、あるAPIが存在するかどうかを検出する方法をサポートしていない.あるバージョンの下にあるNativeまたはJavascript方法があるかどうかは、バージョンの反復によって決定されない場合がある.
  • は進捗コールをサポートしていません.既存のJS Bridgeは基本的に一回の呼び出しで戻りますが、jsが元のファイル機能をダウンロードする方法を呼び出した場合、元のダウンロード過程ではダウンロードの進捗がjsに戻ります.
  • はAPI管理をサポートしていません.既存のJS BridgeはAPIを登録する時、基本的にすべてのAPIが単独で登録する必要があります.このようにAPIが多い場合、使用回数が非常に面倒なだけでなく、APIの分類管理にも不利です.
  • 福音書
    私はみんなに現実を突き破って、みんなのために希望を作り直さなければなりません.聞き取れませんか?簡単に言えば、前はクッションで、下は本当の目的です.
    では、利用できる、丈夫、プラットフォームにまたがる、安全、使いやすい、強力な既製のJS Bridgeがありますか?
    ハハ、もちろんあります.徹夜して、あちこちを見て、心血を注いで、寝食を忘れて、やっとこのような健やかさ、プラットフォームにまたがり、安全、使い勝手が簡単で、強いJS Bridgeを創造しました.それはDSBridgeです.
  • Android、IOS、Javascriptの3つの端は使いやすくて、軽くて強いです.安全で丈夫です.
  • は同期呼び出しと非同期呼び出しを同時にサポートする
  • .
  • は、クラスの方式で集中的にAPIを管理することをサポートする
  • .
  • は、APIの名前空間
  • をサポートする.
  • はデバッグモード
  • をサポートしています.
  • は、API存在性検出
  • をサポートする.
  • は進捗コールをサポートします.一回の呼び出しで、何回も
  • に戻ります.
  • は、Javascriptがページを閉じるイベントをサポートします.
  • は、Javascriptモード/非モーダルダイアログ
  • をサポートしています.
  • テンセントX 5カーネル
  • をサポートします.
    もちろんソースの住所を提示します.
    DSBridge for IOS:https://github.com/wendux/DSBridge-IOS
    DSBridge for Android:https://github.com/wendux/DSBridge-Android
    詳細はGithub文書を参考にしてください.全部中国語がありますよ.
    最後に、DSBridgeが好きなら、starを歓迎して、長年苦労して誰も知らないことができません.