cordova-plugin-inappbrowserの"message"イベント


cordova-plugin-inappbrowser "message"イベントでネイティブ側で処理

非常に役に立つ"message"イベント。
これを使えばinappbrowser側でのイベントをひっかけてネイティブにもってこれる。
cordova側の処理。

    this.Ref.addEventListener("message", function(event){
        var type = event.type;
    });

とても楽。

呼び出す側。

    if (window.webkit && window.webkit.messageHandlers) {

            var messageObj = {
                    "type": type
                    , "data" : data
            };
            var stringifiedMessageObj = JSON.stringify(messageObj);
            webkit.messageHandlers.cordova_iab.postMessage(stringifiedMessageObj);
    }

とても楽。
渡すパラメータはjsonにしてやるみたいでござるよ。

注意すべきはAndroid時の挙動か。
window.webkitはネイティブ側のonなんたらFinishイベントで捏造しているくさい。
document.readyとかでイベントはしらせたら多分はしらない。たぶんね。
(cordova_iabというオブジェクトを直で使えば動かせるかも)