我正在Titanium中开发一款在IOS和Android上运行的跨平台应用程序。为了发送我的推送通知,我正在考虑使用Pushwoosh,但我愿意接受建议。
在应用程序上,某些参数保存在本地,这些参数将影响推送通知的内容。现在可以将这些本地保存的参数获取到Pushwoosh中吗?这样我就可以发送自定义通知了,我该怎么做?
是的,它被称为有效负载。
不确定PushWoosh如何处理有效载荷。。。但是你可以使用Parse。
当你收到推送时,你会从中取出自定义有效载荷数据(最大大小为256字节,在iOS8+中为2 Kb的数据),并将其保存到你的应用程序中:
Ti.Network.registerForPushNotifications({
types: [ Ti.Network.NOTIFICATION_TYPE_BADGE, Ti.Network.NOTIFICATION_TYPE_ALERT, Ti.Network.NOTIFICATION_TYPE_SOUND ],
success: function(e) { Ti.App.Properties.setString('token', e.deviceToken); subscribePush();},
error: function (e) { alert("error: " + JSON.stringify(e)); },
callback: function (e) {
alert('the push ' + JSON.stringify(e) ); // Works Only on RUN Device
// Store your Data in the app
Ti.App.Properties.setObject('myPushedData', e.data)
}
});
Pushwoosh绝对有可能-您可以通过PW控制面板和API("data"
参数)以"key":"value"格式传递任何自定义JSON数据以及推送通知。在得到的推送有效载荷中,该数据作为"u"
参数的值被传递。
请参阅Pushwoosh Titanium指南中的代码示例,了解如何从有效载荷访问此额外的自定义数据:
// Process incoming push notifications
function receivePush(e) {
alert('Received push: ' + JSON.stringify(e));
Ti.API.warn("push message received: " + JSON.stringify(e));
//send stats to Pushwoosh about push opened
PushWoosh.sendPushStat(e.data.p);
var pushwoohURL = e['data']['l'];
var a = Ti.UI.createAlertDialog({
title : 'New Message',
message : e.data.alert,
buttonNames : ['Open', 'Close']
//message : JSON.stringify(e.data) //if you want to access additional custom data in the payload
});
a.show();
a.addEventListener('click', function(e) {
if (e.index == 0) {
Titanium.Platform.openURL(pushwoohURL);
}
});
}