0

ti.cloudpush モジュールを介した gcm プッシュ通知を含む Android アプリケーションを開発しています。特定の種類のプッシュ通知用に特定のウィンドウを起動したいと考えています。これを実現する適切な方法はありますか。以下は私のトレーニングです。

CloudPush.addEventListener('callback', function(evt) {
alert("Notification received: " + evt.payload);
//-------------------launch code
var win=Ti.UI.createWindow({
    url:'music.js',
    exitOnClose:true,
});

});

私もペンディングインテントを作成してみましたが、これも失敗ではありませんでした。前もって感謝します

4

1 に答える 1

0

コールバックでは、ペイロードが送り返されます。

alert(evt.payload);

CloudPush.addEventListener('callback', function(evt) {
    Ti.API.debug(evt.payload);

}

ペイロードは、データ ペイロードの JSON 文字列です。JSON.parse を使用して、これを使用可能なオブジェクトに変換します。

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse

このペイロードを使用して、起動するインテント、ウィンドウ、またはアクションに基づいてチェックを行うことができます。

var payload = JSON.parse(evt.payload);

if (payload... ) { 
    // Do first option

} else {
    // Do fallback option
}

ペイロードを解析したら、cloudPush からのコールバック eventEventLister 内で、次のようなものをロードできます。

CloudPush.addEventListener('callback', function(evt) {

    ... Do payload check if statement from evt.payload...

    // Or this could be a new window, alert, etc,
    Titanium.Android.NotificationManager.notify(0, 
        Ti.Android.createNotification({
            contentTitle : "title",
            contentText : "text",
            tickerText : "custom notification!",
            contentIntent : Titanium.Android.createPendingIntent({
                intent : Titanium.Android.createIntent({
                    url : 'foo.js'
                })
            })
        })
    );
});

別のウィンドウに切り替えたい場合は、インテント内の url オブジェクトを、送り返された evt.payload に応じて設定されるカスタム変数に設定します。

例えば

intent : Titanium.Android.createIntent({
    url : presetWindowUrl
})
于 2015-02-02T14:17:40.847 に答える