如何在工作灯中为 windows phone 8 配置未经身份验证的推送通知
How to configure Non-authenticated push notification for windows phone 8 in worklight
我已经在 Android 和 IOS 中配置了推送通知,而且效果很好。但是当我在 worklight 中为 windows phone 8 配置未经身份验证的推送通知时,它不是 working.I 按照下面的 MobileFirst 文档为 运行 推送通知 windows Phone 8:
我还想知道,对于基于订阅的推送通知,windows phone 8 推荐使用哪种通知,即非认证推送或认证推送?
下面是我的代码:
adapter.js
function submitNotification(userId, notificationText){
var userSubscription = WL.Server.getUserNotificationSubscription('PushAdapter.PushEventSource', userId);
if (userSubscription==null){
return { result: "No subscription found for user :: " + userId };
}
var notification={};
notification.MPNS={};
var badgeDigit = 1;
var notification = WL.Server.createDefaultNotification(notificationText, badgeDigit, {custom:"data"});
notification.MPNS.toast={};
notification.MPNS.toast.text1 = "Toast title";
notification.MPNS.toast.text2 = "Toast content";
WL.Logger.debug("submitNotification >> userId :: " + userId + ", text :: " + notificationText);
WL.Server.notifyAllDevices(userSubscription, notification);
return {
result: "Notification sent to user :: " + userId
};
}
申请-descriptor.xml
<windowsPhone8 version="1.0">
<uuid>5747-54938-fjhg-f459-844h-fhkj</uuid>
</windowsPhone8>
请帮助我 windows phone 8 推送通知。
++++++++++++++++++++++++++++++++更新问题+++ ++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++
在 "application-descriptor.xml" 中添加推送发送者 ID 后。推送通知正在 windows phone8 上工作。但在 windows phone8.
上接收广播通知时遇到问题
广播适配器.js
function sendBroadcastNotification(applicationId, notificationText) {
var notificationOptions = {};
notificationOptions.message = {};
notificationOptions.message.alert = notificationText;
WL.Server.sendMessage(applicationId, notificationOptions);
return {
result : "Notification sent to all users."
};
}
客户端代码在main.js:
if(WL.Client.Push){
WL.Client.Push.onMessage = function (props, payload) {
navigationFromNotification = true;
WL.SimpleDialog.show("Tag Notifications", "Provider notification data: " + JSON.stringify(props), [ {
text : 'Close',
handler : function() {
WL.SimpleDialog.show("Brodcast Notifications", "Application notification data: " + JSON.stringify(payload), [ {
text : 'Close',
handler : function() {
window.location.href="#/home/2";
}
}]);
}
}]);
};
}
我是否需要添加任何内容才能在 windows phone8 上接收广播通知?
您链接到的文档清楚地提到要添加一个空的 pushSender
元素,从 application-descriptor.xml 的代码片段中可以看出 - 您没有这样做。基本上,您没有将您的应用程序配置为使用推送通知(!)。
<windowsPhone8 version="1.0">
<uuid>auto-generated by the platform</uuid>
<pushSender />
</windowsPhone8>
是否认证推送与基于用户的订阅无关。
您可以使用其中任何一个。 MS 的唯一限制是未经身份验证的消息每天限制为 500 条消息,而经过身份验证的消息不受限制(并且更安全)。
a) MPNS 推送通知可以在未验证或已验证模式下运行。在未经身份验证的模式下,通过 Microsoft 推送通知服务允许的通知数量和频率受到限制(未经身份验证的推送通知目前限制为每天每个频道 500 个)。
MSDN documentation.
IBM MobileFirst 支持经过身份验证和未经身份验证的 MPNS 推送。
b) 对于 Tag/Broadcast MPNS 通知,默认情况下通知会出现在应用程序磁贴中。要在应用程序处于前台或作为 toast 通知时显示通知,请将以下代码添加到适配器中的 sendBroadcastNotification() 方法:
notificationOptions.settings = {};
notificationOptions.settings.mpns ={};
notificationOptions.settings.mpns.raw = {};
notificationOptions.settings.mpns.raw.payload= {'payload' : notificationText};
notificationOptions.settings.mpns.toast ={};
notificationOptions.settings.mpns.toast.text1 = 'Title';
notificationOptions.settings.mpns.toast.text2= notificationText;
有关完整内容,请参阅 TagNotifications 示例 code
我已经在 Android 和 IOS 中配置了推送通知,而且效果很好。但是当我在 worklight 中为 windows phone 8 配置未经身份验证的推送通知时,它不是 working.I 按照下面的 MobileFirst 文档为 运行 推送通知 windows Phone 8:
我还想知道,对于基于订阅的推送通知,windows phone 8 推荐使用哪种通知,即非认证推送或认证推送?
下面是我的代码:
adapter.js
function submitNotification(userId, notificationText){
var userSubscription = WL.Server.getUserNotificationSubscription('PushAdapter.PushEventSource', userId);
if (userSubscription==null){
return { result: "No subscription found for user :: " + userId };
}
var notification={};
notification.MPNS={};
var badgeDigit = 1;
var notification = WL.Server.createDefaultNotification(notificationText, badgeDigit, {custom:"data"});
notification.MPNS.toast={};
notification.MPNS.toast.text1 = "Toast title";
notification.MPNS.toast.text2 = "Toast content";
WL.Logger.debug("submitNotification >> userId :: " + userId + ", text :: " + notificationText);
WL.Server.notifyAllDevices(userSubscription, notification);
return {
result: "Notification sent to user :: " + userId
};
}
申请-descriptor.xml
<windowsPhone8 version="1.0">
<uuid>5747-54938-fjhg-f459-844h-fhkj</uuid>
</windowsPhone8>
请帮助我 windows phone 8 推送通知。
++++++++++++++++++++++++++++++++更新问题+++ ++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++ 在 "application-descriptor.xml" 中添加推送发送者 ID 后。推送通知正在 windows phone8 上工作。但在 windows phone8.
上接收广播通知时遇到问题广播适配器.js
function sendBroadcastNotification(applicationId, notificationText) {
var notificationOptions = {};
notificationOptions.message = {};
notificationOptions.message.alert = notificationText;
WL.Server.sendMessage(applicationId, notificationOptions);
return {
result : "Notification sent to all users."
};
}
客户端代码在main.js:
if(WL.Client.Push){
WL.Client.Push.onMessage = function (props, payload) {
navigationFromNotification = true;
WL.SimpleDialog.show("Tag Notifications", "Provider notification data: " + JSON.stringify(props), [ {
text : 'Close',
handler : function() {
WL.SimpleDialog.show("Brodcast Notifications", "Application notification data: " + JSON.stringify(payload), [ {
text : 'Close',
handler : function() {
window.location.href="#/home/2";
}
}]);
}
}]);
};
}
我是否需要添加任何内容才能在 windows phone8 上接收广播通知?
您链接到的文档清楚地提到要添加一个空的 pushSender
元素,从 application-descriptor.xml 的代码片段中可以看出 - 您没有这样做。基本上,您没有将您的应用程序配置为使用推送通知(!)。
<windowsPhone8 version="1.0">
<uuid>auto-generated by the platform</uuid>
<pushSender />
</windowsPhone8>
是否认证推送与基于用户的订阅无关。
您可以使用其中任何一个。 MS 的唯一限制是未经身份验证的消息每天限制为 500 条消息,而经过身份验证的消息不受限制(并且更安全)。
a) MPNS 推送通知可以在未验证或已验证模式下运行。在未经身份验证的模式下,通过 Microsoft 推送通知服务允许的通知数量和频率受到限制(未经身份验证的推送通知目前限制为每天每个频道 500 个)。
MSDN documentation.
IBM MobileFirst 支持经过身份验证和未经身份验证的 MPNS 推送。
b) 对于 Tag/Broadcast MPNS 通知,默认情况下通知会出现在应用程序磁贴中。要在应用程序处于前台或作为 toast 通知时显示通知,请将以下代码添加到适配器中的 sendBroadcastNotification() 方法:
notificationOptions.settings = {};
notificationOptions.settings.mpns ={};
notificationOptions.settings.mpns.raw = {};
notificationOptions.settings.mpns.raw.payload= {'payload' : notificationText};
notificationOptions.settings.mpns.toast ={};
notificationOptions.settings.mpns.toast.text1 = 'Title';
notificationOptions.settings.mpns.toast.text2= notificationText;
有关完整内容,请参阅 TagNotifications 示例 code