我在Titanium中开发了一个在IOS和Android上运行的跨平台应用程序。要发送我的推送通知我考虑使用Pushwoosh,但我打开了建议。
在应用程序上,某些参数将保存在本地,这将影响推送通知的内容。现在是否可以将这些本地保存的参数传递给Pushwoosh,以便我可以发送自定义通知,我该怎么做?
答案 0 :(得分:0)
是的,它被称为有效载荷。
不确定PushWoosh如何处理有效负载......但您可以使用Parse。
当您收到Push时,您将获得自定义有效负载数据(最大大小为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)
}
});
答案 1 :(得分:0)
使用Pushwoosh绝对可以实现 - 您可以在"键":"值"中传递任何自定义JSON数据。格式以及来自PW控制面板和API("data"
参数)的推送通知。在生成的推送有效负载中,此数据作为"u"
参数的值传递。
请参阅Pushwoosh Titanium guide中有关如何从有效负载访问此额外自定义数据的代码示例:
// 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);
}
});
}