适用于 Windows 商店 8.1 的 Windows Azure node.js 推送通知 - 如何使用“createRawTemplateRegistration”模板?
Posted
技术标签:
【中文标题】适用于 Windows 商店 8.1 的 Windows Azure node.js 推送通知 - 如何使用“createRawTemplateRegistration”模板?【英文标题】:Windows Azure node.js Push notification for Windows store 8.1 - How to use 'createRawTemplateRegistration' template? 【发布时间】:2016-06-21 10:43:48 【问题描述】:请举例说明,因为我收到错误:400 - 指定的资源描述无效。
基本上,我想更新徽章值。但是 WnsService API 文档 (http://azure.github.io/azure-sdk-for-node/azure-sb/latest/WnsService.html) 中没有徽章注册模板。所以,我正在尝试使用“createRawTemplateRegistration”模板来更新徽章值。 请帮我解决这个问题。
【问题讨论】:
【参考方案1】:您可以直接使用sendBadge()
函数将徽章值推送到客户端设备。
请尝试以下代码:
var azure = require('azure');
var notificationHubService = azure.createNotificationHubService('<hubname>', '<connectionstring>');
notificationHubService.wns.sendBadge(null,99,function(error,response)
if(error) console.log(error);
console.log(response);
)
如有任何疑问,请随时告诉我。
更新
您的意思是您只需要一个模板并处理所有类型的通知,包括 Raw、Toast、Badge?如果是这样,我认为答案是否定的。根据描述http://azure.github.io/azure-sdk-for-node/azure-sb/latest/WnsService.html#createRawTemplateRegistration:
请记住,您必须指定 X-WNS-Type 标头
所以 header 选项是必需的。而根据nodejs中通过这个api调用的REST API是Create Registration,我们可以找到描述:
BodyTemplate 元素是必需的,X-WNS-Type 标头也是如此。
所以我们应该为模板指定通知类型。
更新1
此代码示例在我这边运行良好:
var channel = '<devicetoken>';
var templateMessage = text1: '$(message)' ;
notificationHubService.wns.createRawTemplateRegistration(channel,'tag',JSON.stringify(templateMessage), headers: 'X-WNS-Type': 'wns/raw' ,
function (e, r)
if (e)
console.log(e);
else
console.log(
id: r.RegistrationId,
deviceToken: r.DeviceToken,
expires: r.ExpirationTime
);
)
【讨论】:
是的,sendBadge() 可以使用,但这需要服务器端的更改。对?我想在 azure 上注册一个模板,并且每次都应该根据该模板接收推送,而无需在服务器端进行更改。例如。我已注册此模板以接收 toast 推送。同样我想要徽章值更新。 templateMessage = text1: '$(message)' ; hub.wns.createToastText01Registration(pushIdentifier, [userId, platform, version, tag], templateMessage, registrationComplete); UWP中的徽章模板是一种特殊的xml字符串,似乎无法自定义,具体可以参考msdn.microsoft.com/en-us/library/windows/apps/hh779719.aspx。整个徽章字符串为<badge value="<value>"/>
,可接受的值类型为数字字符或UWP系统中预定义的字符串。
难道不能像我们为 toast 做的那样在 azure 上为徽章注册一些模板吗? (吐司模板在我之前的评论中提供。)。从服务器我得到两件事。 1. 消息 2. 计数 此计数可用于更新徽章。但为此,我需要一个在 azure 上注册的模板。希望你能得到我的问题。请询问您是否需要更多信息。
由于评论长度限制,请参考更新。如果我有什么误解,请随时告诉我。
没有必要让一个模板处理所有类型的通知,即徽章、吐司等。我希望徽章注册模板在 azure 上注册。但是我发现没有徽章注册模板。只有 sendbadge() 模板。因此,我曾考虑为此目的使用“createRawTemplateRegistration”模板,因为在该标头类型中我可以指定“wns/badge”。这是模板格式:createRawTemplateRegistration(channel, tags, template, optionsOrCallbackopt, callback)。以上是关于适用于 Windows 商店 8.1 的 Windows Azure node.js 推送通知 - 如何使用“createRawTemplateRegistration”模板?的主要内容,如果未能解决你的问题,请参考以下文章
xml 适用于Windows 8.1和Windows Phone 8.1应用程序的扩展器控件演示。
xml 适用于Windows 8.1和Windows Phone 8.1应用程序的扩展器控件的模板。
适用于 Windows Phone 8.1 的 XMPP 库
适用于 Windows 8.1 的 Nvidia GeForce 驱动程序无法在 Windows 10 上运行 [关闭]