現在市場で流行している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スクリプトの実行結果を返します.次のようになります.
それは実はWindowの下のオブジェクトを呼び出して、もし私たちがnativeにjsの書く方法を呼び出すならば、この方法はwindowの下でアクセスすることができます.
方法1:
メソッド2:JSがshallメソッドを呼び出すように、JSが呼び出すメソッドを定義します.UIWebViewのurlロードが完了したら、そのエージェントメソッドに呼び出すshallメソッドを追加することができます.これにより、Webページで直接このメソッドを使用できます.
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¶m2=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(" "," "," ")
}
...