3

プッシュ通知用に Telerik Appbuilder (cordova) アプリを登録しました。ユーザーがアプリケーション内にいるときにプッシュ通知を受信しないという事実を除いて、すべてが正常に機能します。

彼が自分のプッシュを登録する 1 ページにいる限り、問題なく動作します。つまり:

var registerPush = function (user, callback) {
    $(".modal-loader").show();
    document.addEventListener("deviceready", function () {
        var el = new Everlive('m4yh8cw6ei7xxwio');

        var pushSettings = {
            iOS: {
                badge: true,
                sound: true,
                alert: true,
                clearBadge: true
            },
            notificationCallbackIOS: function (e) {             
                navigator.notification.alert(e.alert, function () { }, "Alert", "Ok");
            },
            customParameters: {
                login: user
            }

        };

        el.push.register(
            pushSettings,
            function () {
                $(".modal-loader").hide();
                callback();
            }
            ,
            function errorCallback(error) {
                // This callback will be called any errors occurred during the device
                // registration process
                console.log("error registering push");
                console.log(data);
            }
        );
    }, false);
}

ユーザーがこの関数を実際に登録しているページにいる場合、navigationCallbackIOS を介してアラートが送信されます。ただし、次の方法で別のページを参照するとすぐに:

 location.href= nextpage.html 

その後、navigationCallbackIOS は機能しなくなります。すべてのページでグローバル コールバックを機能させるために、ここで実装する必要があるロジックは何ですか?

4

2 に答える 2

0

location.href の変更の代わりに AJAX リクエストを使用する方が、次の 3 つの動機に適しています。 1. 速度 2. リロードなし (毎回すべてのリソースをリロードする必要はありません)ページを変更するたびに再実行する必要はありません。

そのためには、DOM 要素を作成し、そこに他のページのコンテンツをロードすることができます。概念実証については、こちらをご覧ください。基本的には、XMLHttpRequest を管理し、結果を DOM 要素に入れることがすべてです。

于 2016-03-23T21:24:21.993 に答える