Cordovaのプラグインinappbrowserのmessageイベントのやり方
1321 ワード
Cordovaのプラグインinappbrowserでwebviewアプリを作成した時にinappbrowser内のリンクを端末の標準ブラウザで開く方法にもの凄く苦戦したのでやり方を残します。
■ 構築環境
・Cordova9.0.0
・inappbrowser3.1.0
■ メッセージを送る側(inappbrowser内)
var value = 'value';
var messageObj = {hoge: value};
var stringifiedMessageObj = JSON.stringify(messageObj);
window.webkit.messageHandlers.cordova_iab.postMessage(stringifiedMessageObj);
■ メッセージを受け取る側(アプリ内)
var value = 'value';
var messageObj = {hoge: value};
var stringifiedMessageObj = JSON.stringify(messageObj);
window.webkit.messageHandlers.cordova_iab.postMessage(stringifiedMessageObj);
受け取る側での変数の参照の仕方ですが今回は送る側で hoge
という名前で送信したので
参照する時は event.data.hoge
です。
var hoge = cordova.InAppBrowser.open('url', '_blank');
hoge.addEventListener('message', function(event) {
// ここに処理を書く
console.log(event.data.hoge);
});
■ 注意点
inappbrowserのversionのみです!versionは 3.1.0
以上でないと動きません。自分はこのやり方をすぐに見つけたのにversionのせいだと気付かず色々なやり方を試していました。cordovaはたまにプラグインのversionを変えた時によくわからないバグが発生するのでその時は新しいプロジェクトからやると楽です。
Author And Source
この問題について(Cordovaのプラグインinappbrowserのmessageイベントのやり方), 我々は、より多くの情報をここで見つけました https://qiita.com/aoyahk/items/9406e80f215c1034b7f2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .