在phonegap推送插件上没有收到GCM registrationId

时间:2016-07-08 13:56:16

标签: ios google-cloud-messaging phonegap-pushplugin

几天前我在使用phonegap推送插件时获得了issue获取APNS令牌而不是GCM令牌。

好吧,我更改了设置,我将senderID放在[ios]块中,重新编译了应用程序。现在我在Iphone上根本没有任何问题。它仍适用于Android。谁能告诉我什么可能是个问题?

以下是插件的设置:

 var push = PushNotification.init({
        android: {
            senderID: "8225....8910"
        },
        ios: {
            senderID: "8225....8910",
            alert: "true",
            badge: "true",
            sound: "false"
        },
        windows: {}
    });

这个事件永远不会被召唤:

    push.on('registration', function(data) {

        $.ajax({
            url: '/authentication/ajax-register-gcm-token/',
            data: {token: data.registrationId},
            success: function (json) {
                alert('Phone registered' + data.registrationId);
            }
        });


    });

1 个答案:

答案 0 :(得分:1)

您用于初始化推送通知插件对象的代码是错误的。它应该如下:

var push = PushNotification.init({
            android: {
                senderID: "XXXXXXXXXXXX",
            },
            ios: {
                alert: "true",
                badge: "true",
                sound: "true",
            }
        });

    push.on('registration', function(data) {
        console.log(data.registrationId);
        registerDeviceToken(data.registrationId);
        });

    push.on('notification', function(data) {
        console.log("notification event");
         alert(JSON.stringify(data));
         });

    push.on('error', function(e) {
        console.log("push error");
        alert(JSON.stringify(e));
    });

    function registerDeviceToken(deviceToken){
    //Register the registrationId or deviceToken to your server as per the webservice type and parameters configuration set
//From your code snippet above
$.ajax({
            url: '/authentication/ajax-register-gcm-token/',
            data: {token: deviceToken},
            success: function (json) {
                alert('Phone registered' + deviceToken);
            }
        });
    }

还有没有SenderID 提及here in official link。确保您已在项目的“功能”部分启用了“推送通知”服务,并且已在服务器端代码中添加了正确的开发生产 APNS p12文件及其各自的密码。因此,如果您正在运行带有开发配置文件的应用程序,那么应该有开发p12文件环境发送推送通知以便在您的iOS设备上接收。要设置开发和生产APNS p12证书,请参阅以下链接:APNS setup