如何在初始注册之后注册其他推送通知标记?以下代码成功注册标记(arrTags):
pushRegistration.on('registration', function (data) {
...
if (platform == 'android' || platform == 'Android') {
// Register for GCM notifications.
AzureDbSvc.client.push.register('gcm', handle, {
mytemplate: { body: { data: { message: "{$(messageParam)}" } }, tags: arrTags }
});
}
...
}现在标记已经注册了,我如何注册其他标记?例如,如果arrTags最初包含4个标记,那么随后(稍后)如何注册第5个或第6个标记?
发布于 2017-04-21 15:01:28
下面是我的代码--添加新的标记,不需要重新初始化。请告诉我任何建议。
用法:
代码:
appServices.factory('AzurePshNtfnSvc', function ($ionicPopup, MsgSvc) {
var pushRegistration = null;
var regData = null;
...
/// Push Notification Registration ///
function registerForPushNotifications(arrTags) {
pushRegistration = PushNotification.init({
android: { senderID: 'YourID#' },
ios: { alert: 'true', badge: 'true', sound: 'true' },
wns: {}
});
// Handle the registration event.
pushRegistration.on('registration', function (data) {
regData = data;
registerTags(arrTags);
});
pushRegistration.on('notification', function (data) {
alert('Push Received: ' + data.message);
MsgSvc.prepForPushNotification(data);
});
pushRegistration.on('error', handleError);
}
// Now I can call AzurePshNtfnSvc.registerTags from anywhere in the app
// and delete or add a tag.
function registerTags(arrTags) {
// Get the native platform of the device.
var platform = device.platform;
// Get the handle returned during registration.
var handle = regData.registrationId;
// Set the device-specific message template.
if (platform == 'android' || platform == 'Android') {
// Register for GCM notifications.
AzureDbSvc.client.push.register('gcm', handle, {
mytemplate: { body: { data: { message: "{$(messageParam)}" } }, tags: arrTags }
// example: mytemplate: { body: { data: { message: "{$(messageParam)}" } },
// tags: ["mynotificationtag", "anothertag"]}
// site: https://github.com/Azure/azure-mobile-apps-cordova-client/issues/32
});
} else if (device.platform === 'iOS') {
// Register for notifications.
AzureDbSvc.client.push.register('apns', handle, {
mytemplate: { body: { aps: { alert: "{$(messageParam)}" } } }
});
} else if (device.platform === 'windows') {
// Register for WNS notifications.
AzureDbSvc.client.push.register('wns', handle, {
myTemplate: {
body: '<toast><visual><binding template="ToastText01"><text id="1">$(messageParam)</text></binding></visual></toast>',
headers: { 'X-WNS-Type': 'wns/toast' }
}
});
}
}
// Unregister all tags, called when exiting app
function unregister() {
return new Promise(function (resolve, reject) {
if (pushRegistration == null) {
return resolve();
} else {
pushRegistration.unregister(function () {
console.log('success');
resolve();
}, function () {
console.log('error');
reject();
});
}
});
}
...发布于 2017-04-19 09:28:59
您可以通过回忆这个函数AzureDbSvc.client.push.register()来更新带有标记的注册,因为注册本身是短暂的。
此外,您可以尝试在后端管理注册,您可以参考注册管理
https://stackoverflow.com/questions/43484580
复制相似问题