JSBridge原則とAndroidの実装

アンドロイドでは、JSBridgeは新しいものではなく、様々な実装も若干異なります。ほとんどの人は、WebViewの詳細が表示さ抜け穴があることを知っているあなたは、AndroidのWebViewの脆弱性を使用することを知らないことではなく、@JavascriptInterface addJavascriptInterfaceを使用しての、ある、脆弱性は、Android 4.2で修正されているが、しかし、理由は互換性とセキュリティの問題の、基本的な私たちは、私たちが提供するAndroidシステムaddJavascriptInterfaceメソッドを使用することはありませんか@JavascriptInterfaceは達成するためにノートので、私たちは安全な見つけるために他の方法を探すために持っているだけでなく、Androidのプログラムのすべてのバージョンとの互換性を達成します。

 

まずは、効率性や利便移植の発展を追求するためには、開発中に、JSBridgeを使用する理由を見てみましょう、といくつかの強力なパフォーマンスを示し、ページが非常に高いではありません、我々は、機能を完了するために、H5を使用することを好むだろうページには、我々は、我々はダイアログ、シェアを演奏し、爆弾のトーストを思い出させるために、例えば、起動するためにネイティブ層jsの方法の一部を公開する必要がネイティブの経験可能取得するために使用さH5、H5を完了するために、ネイティブ使用することを好む、と一度ます等、時々H5が完了するネイティブネットワーク要求を置き、一般的に現像剤JSSDKを提供するためによくやったJSBridgeマイクロチャネル、マイクロチャネルである、SDKの方法は、支払いとして、天然のマイクロチャネル層の多くを露出させます、場所など。

だから、どのように互換性のあるAndroidのバージョンを達成するだけでなく、いくつかのセキュリティがそれをJSBridgeましたか?私たちは、あなたがJavaのJSメソッドをコールする場合のWebViewで、行うことは非常に簡単であることを知って、Android4.4以前に使用WebView.loadUrl(「ジャバスクリプト:機能() 」)。Android4.4後、次の方法を使用して

webView.evaluateJavascript(「ジャバスクリプト:機能()」、新ValueCallback <文字列>(){
@Override
ます。public void onReceiveValue(String値){
Toast.makeText(MainActivity.this、 "onReceiveValue JavaへのJS"、Toast.LENGTH_SHORT)。ショー();
}
})。

setWebChromeClientと呼ばれる方法で、そこのWebView、あなたがJSBridgeを伝えるネイティブ層がそれのネイティブ層を調整する方法H5層が、H5層を呼び出して、我々は慎重に思い出す、このようなチャネルを見つける必要がないようにするため、あなたはWebChromeClientオブジェクトを設定することができ、このオブジェクト、すなわちonJsAlert、onJsConfirm、onJsPrompt、ときに対応するウィンドウオブジェクトのメソッド呼び出しのJS、対応するオブジェクトがあろうWebChromeClientすなわちのwindow.alert、window.confirm、にwindow.prompt、三つの方法の三つの方法を有していますトリガーは、我々は自分自身のいくつかは、それに対処するために、このメカニズムを使用することはできませんか?答えはイエスです。

 

これらの三つの方法の違いについてはJSが、あなたは、W3C JavaScriptのメッセージボックスを表示することができます。一般的に、我々はonJsAlert使用し、なぜないのだろうか?JSアラートの使用頻度は、我々はこのチャネルを取ると、警告の通常の使用に影響があり、使用頻度が比較的警告であることを確認し、プロンプトが表示されますが、まだ非常に高いので、それは少し低くなっています。だから、最終的には、確認のためのプロンプトをポップアップし、[OK]をダウンロードします]をクリックし、あなたが必要な場合は、この時間は、ファイルをダウンロードするためのリンクを指し示すなど、使用頻度が低いではありません確認し、実際には、それを確認したり、促し選択し、ダウンロードポイントが取り消されることはありませんこのシナリオでは、まだ同様のがたくさんあるので、確認を占有することはできません。プロンプトは、Androidには、この方法にはほとんど使用は、使用されていないカスタマイズされますので、我々はこの方法を使用することができ、同じではありません。このメソッドは、入力ボックスがポップアップ表示され、その後、あなたは、入力し終わったら、入力ボックスの内容を返してみましょう。したがって、プロンプトが再び十分に完璧である取ります。

 

 

 

 

 

 

おすすめ

転載: www.cnblogs.com/lianghe01/p/11184816.html