APP開発——ページをまたぐ通信
1769 ワード
オプションDcloudは彼らの下のパッケージにwebview上にevalJSを封入した方法をスパン通信の方式として提供しています.原理はjavascriptコードを送信して指定のwebviewで実行します.その方法の名前を見ると、この方法はJavascriptのeval方法と似ています.文字列をパラメータとして、evalメソッドに伝えて、javascriptコードとして実行します.
上記の通り、DcloudのevalJSの方法は私が1.1バージョンからwebsocketを導入してから、徐々に使用を諦めていますが、昨年に先生(@cc先生)が意図的にクロスページ通信を勉強するように指導してくれました.その時学んだhtml 5 storgeはこのような場面に適していました.HTML 5 ・
対照的に、データ処理においては、httml 5 storgeがonstorgeイベントと結合することはevalJSの使用に対してより便利であり、W 3 C仕様の中に属しており、この方法の汎用性がより強く、DcloudのevalJSイベントは、複数ページAPPにおいて、ページを跨るUI切り替え、例えば親子ウィンドウの通信を行うことにより適している.の通信と同じです
2016-7-27更新
appは最終的には、共通の方法を抽出し、evalJSを使用して実現したクロスページ通信によって、データ交流はまだ使われているStrageですが、データ量が多いため、onStrageイベントをトリガできないので、前述のon Strageイベントを放棄してページデータの更新をトリガしました.onStorrageイベントが無効になったデータ量の臨界値は見つけられませんでした.Appは開発されませんでした.現在のソフトウェア初期化後のloacl Storrageの使用量は10個ぐらいで、removeの時だけonstorageイベントが発生します.setItemの時は大確率でonStorrageイベントが発生しません.
//
plus.webview.getLaunchWebview().evalJS("alert(' !')")
アプリの開発にはリアルタイム通信が必要な四つのシーンがあります.リアルタイム通信が確実にできるように、indexページでwebsocket接続を開始する必要があります.(これはプログラムの入口ページです.プログラムからプログラムのクローズまでは必ず存在します.だから、websocketをこのページに接続して開始します.ユーザがリアルタイムでサーバからのプッシュ情報を受信できるように保証できます.)しかし、サービスが送ってきた情報は保証できません.evalJSをリアルタイムで通過する方法で、ターゲットページに情報を伝達することができます.(ユーザーはそのページを開けていないかもしれません.ソフトウェアの流れを保証するために、プログラムは自動的に多すぎるページを開けません.)上記の通り、DcloudのevalJSの方法は私が1.1バージョンからwebsocketを導入してから、徐々に使用を諦めていますが、昨年に先生(@cc先生)が意図的にクロスページ通信を勉強するように指導してくれました.その時学んだhtml 5 storgeはこのような場面に適していました.
onstorage
イベントは、1ページでStrageを修正すると、他のページがトリガonstorage
イベントとなり、対象ページが開いていない場合はサーバ側の修正により、ローカルにキャッシュされます.ターゲットページが開いたときには最新のキャッシュ情報がリアルタイムに入手できます.// storage
window.addEventListener("storage",function(e){
//e.key ,key storage key ;
if(e.key=="userData"){
indexData.userData = JSON.parse(localStorage.getItem("userData"));
}
})
後記対照的に、データ処理においては、httml 5 storgeがonstorgeイベントと結合することはevalJSの使用に対してより便利であり、W 3 C仕様の中に属しており、この方法の汎用性がより強く、DcloudのevalJSイベントは、複数ページAPPにおいて、ページを跨るUI切り替え、例えば親子ウィンドウの通信を行うことにより適している.の通信と同じです
2016-7-27更新
appは最終的には、共通の方法を抽出し、evalJSを使用して実現したクロスページ通信によって、データ交流はまだ使われているStrageですが、データ量が多いため、onStrageイベントをトリガできないので、前述のon Strageイベントを放棄してページデータの更新をトリガしました.onStorrageイベントが無効になったデータ量の臨界値は見つけられませんでした.Appは開発されませんでした.現在のソフトウェア初期化後のloacl Storrageの使用量は10個ぐらいで、removeの時だけonstorageイベントが発生します.setItemの時は大確率でonStorrageイベントが発生しません.