0

Worklight 6 でハイブリッド アプリケーションを開発しており、iOS 環境用にプッシュ通知をセットアップしようとしています。iOS デバイスでプッシュ通知を正常にサブスクライブして受信することができました。ただし、受信したプッシュ通知をクリックしてアプリを開こうとすると、次のエラーが表示されます。

TypeError: 'undefined' はオブジェクトではありません ('registeredEventSources[pendindPushEvent.alias].callback' を評価しています)

これは、認証 (WL.Client.login) を実行するために Worklight サーバーに接続しようとした直後に発生し、その後ログイン コールバックのいずれかが実行されないようにします。奇妙なことに、参照しているように見えるこのイベント ソース コールバックが呼び出されます。WL.Client.Push.registerEventSourceCallback に渡す関数が実行され、通知の payload.msg が正しく表示されます。

注: アプリがプッシュ通知なしで開かれている場合、認証は問題なく機能しているようです。

このエラーに関する情報を他の場所で見つけることができませんでした。誰でもこの問題に光を当てることができますか?

4

2 に答える 2

1

実際、これは IMO の欠陥です。Android では修正されていますが、iOS では修正されていないようです。私はそれについて欠陥を開いた。

于 2013-10-31T09:10:44.387 に答える
1

プッシュ通知のコールバックを定義する必要があるようです:

WL.Client.Push.registerEventSourceCallback(
            "myPush", 
            "PushAdapter", 
            "PushEventSource", 
            pushNotificationReceivedCallBack);

...

function pushNotificationReceivedCallBack(props, payload){
    alert("pushNotificationReceived invoked");
}

イベント ソースに登録したコールバック関数を再確認できますか? 「registerEventSourceCallback」呼び出しで定義された関数と実際の関数実装の間にタイプミスがあったのでしょうか?

于 2013-10-28T20:10:13.787 に答える