我正在尝试使用在Web视图主机(Phonegap / Intel XDK)中运行的html / javascript代码在Azure Notification Hub上进行注册。没有可用的客户端库,因此我尝试使用REST API(文档:)。
我有以下Javascript代码:
function registerWithAzureNotificationHub()
{
var sas = "Endpoint=sb://eventpusher-ns.servicebus.windows.net/;SharedAccessKeyName=DefaultListenSharedAccessSignature;SharedAccessKey=69XuYoluyBKl6JkkN03Z1oNC7cFSZ4Ku0ZWmPuWoJzs=";
var data = '<?xml version="1.0" encoding="utf-8"?>\
<entry xmlns="http://www.w3.org/2005/Atom">\
<content type="application/xml">\
<MpnsRegistrationDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect">\
<Tags>myTag, myOtherTag</Tags>\
<ChannelUri>https://eventpusher-ns.servicebus.windows.net/eventpusher</ChannelUri>\
</MpnsRegistrationDescription>\
</content>\
</entry>';
if (AppMobi.iswp8) {
window.alert("IS WP8");
}
else
{
window.alert("IS NOT WP8");
}
$.ajax({
type:"POST",
url: "https://eventpusher-ns.servicebus.windows.net/EVENTPUSHER/registrations/?api-version=2013-08",
contentType: "application/atom+xml;type=entry;charset=utf-8",
headers: {
"Authorization": sas,
"x-ms-version": "2013-08"
},
dataType: "xml",
data: data,
success: function(d) { window.alert("SUCCESS!"); },
error: function(msg) { window.alert("FAILURE:" + JSON.stringify(msg)); }
});
window.alert("SENT!");
}
在上面的例子中,我使用英特尔XDK和WP8设备上运行的代码,所以我注册了MPNS(微软推送通知服务)。
上述代码失败,并返回没有关于错误原因的描述性信息。
问题:
答案 0 :(得分:4)
绝对可以从javascript使用REST界面。 在您的代码中有两个主要问题:
答案 1 :(得分:1)
我发布了一个服务器端代码段,用于将设备注册到集线器,并且可以在此处发送通知:
How to register devices to Azure Notification Hub from server side(with NodeJS sdk) ?
我也有使用Ionic中的ngCordova和PushPlugin的客户端代码,让我知道是否有人想看到它。