使用Cordova应用程序(iOS)的Azure通知中心

时间:2016-04-14 04:49:10

标签: ios cordova azure azure-notificationhub

我正在尝试使用Notification Hub来推送Cordova app(iOS)

Azure端如下。

Notification Hub

Notification Hub

客户端的源代码如下。 我确定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。

Notification Hub Test

有谁知道如何修复它或任何信息?

我的环境是

  • MacBook Pro
  • OS X ElCapitan
  • Cordova 6.0.0
  • com.microsoft.azure-mobile-services 1.2.9“Windows Azure移动服务”
  • phonegap-plugin-push 1.6.2“PushPlugin”

1 个答案:

答案 0 :(得分:0)

很可能由于某种原因,对client.push.register()的调用没有成功。我没有使用您正在使用的特定插件,我使用azure-mobile-apps-cordova-clientphonegap-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注册是否真正被接受。