我正在尝试使用Notification Hub来推送Cordova app(iOS)
Azure端如下。
客户端的源代码如下。 我确定Azure客户端连接正确,注册成功。
function initPushNotification(){
var push = PushNotification.init({
android: {
senderID: "12345679"
},
ios: {
alert: "true",
badge: "true",
sound: "true"
},
windows: {}
});
var registrationSuccess = function () {
alert('Registered with Azure!');
};
var registrationFailure = function (error) {
alert('Failed registering with Azure: ' + error);
};
push.on('registration', function(data) {
client.push.apns.registerTemplate(handle,
'myTemplate', template, null)
.done(registrationSuccess, registrationFailure);
});
push.on('notification', function(data) {
alert('Push Received: ' + data.message);
});
push.on('error', function(e) {
alert(e.message);
});
但是当我从通知中心页面执行测试发送时,没有任何反应。 我直接尝试从简单的ruby脚本到APNS,并正确地通知iPhone。
有谁知道如何修复它或任何信息?
我的环境是
答案 0 :(得分:0)
很可能由于某种原因,对client.push.register()的调用没有成功。我没有使用您正在使用的特定插件,我使用azure-mobile-apps-cordova-client与phonegap-plugin-push结合使用。到目前为止,这种组合正在为我的目的而努力。
您可以在此处找到更完整的示例:Add Push Notifications to your Apache Cordova App。
我要补充的一点是,当你在azure-mobile-apps-cordova-client插件中调用push.register()API时,你可以给它一个错误函数回调,如果API调用失败就会调用它。它看起来像这样:
push.register(' apns',data.registrationId,null,null,function(err) {的console.log(ERR);});
最后,在Visual Studio中,您还可以连接到通知中心并列出和管理注册。这有助于确定APNS注册是否真正被接受。