現在市場で流行している3種類のAppの特徴、H 5と原生の間のインタラクティブな流れ


一、現在市場で主に流行しているのはNativeApp、WebApp、HybridAppの三種類のAppである.
NativeApp(IOS、Android)の特徴:純ツール類のApp;例えば、微信クライアントの利点:運行が安定し、ユーザーの粘度が高く、体験が強く、性能がよく、携帯電話のハードウェアインタフェースを操作できるという欠点:ホットアップデートをサポートできず、リリースが必要で、大きなネットワークダウンロードとストレージの負担をもたらし、複数のバージョンを維持する必要がある
WebApp(モバイルM局はzepto、vue/reactを採用)の特徴:主にブラウザ上で運行する利点:プラットフォームをまたいで、ホット更新をサポートする(しかし注意すべきはブラウザキャッシュの問題)、app storeでダウンロードする必要がなくて、同時に多バージョンの開発とメンテナンスの欠点も必要ありません:性能が悪くて、携帯電話のハードウェアインタフェースを操作できなくて、ユーザーの粘性がありません
HybridAppの特徴:WebAppをNativeAppに埋め込み、WebViewで実現することです.内部ではJsBridgeでネイティブインターフェースを呼び出すことで、ネイティブデバイス機能を実現
二、H 5と原生との間のインタラクションフローh 5と原生との間のインタラクションフロー:Native(Object-またはSwift)呼び出しJSメソッド;NativeがJS言語を呼び出すのは,UIWebViewコンポーネントstringByEvaluatingJavaScriptFromStringメソッドによって実現される.このメソッドは、JSスクリプトの実行結果を返します.次のようになります.
*//Swift*
webview.stringByEvaluatingJavaScriptFromString("alert(aaa)")
*//OC*
[webView  stringByEvaluatingJavaScriptFromString:@"Math.randim();"];

それは実はWindowの下のオブジェクトを呼び出して、もし私たちがnativeにjsの書く方法を呼び出すならば、この方法はwindowの下でアクセスすることができます.
方法1:
 javascript  Native,      API     ,                。UIWebView    :UIWebView          ,     delegate   Native     。  :
jsbridge://methodName?paraml=value&param2=value2

//  iframe  ,   Native   App       ,       
var   url="jsbridge://doAction?title=    &desc=    &link=http%3A%2Fwww.baidu.com";
var  iframe=document.createElement('iframe');
iframe.style.width='1px';
iframe.style.height='1px'
iframe.style.display='none';
iframe.src=url;
document.body.appendChild(iframe);
setTimeout(function(){
iframe.remove();
},100)

メソッド2:JSがshallメソッドを呼び出すように、JSが呼び出すメソッドを定義します.UIWebViewのurlロードが完了したら、そのエージェントメソッドに呼び出すshallメソッドを追加することができます.これにより、Webページで直接このメソッドを使用できます.
function    second(){
shall("     ","     ","    ")
}
...