代码之家  ›  专栏  ›  技术社区  ›  Mr. Developer

带有phonegap插件推送和Firebase的Cordova iOS通知。没有工作

  •  0
  • Mr. Developer  · 技术社区  · 6 年前

    我用Visual Studio代码创建了一个cordova项目。我正在使用这个插件: phonegap-plugin-push 我已经按照指示做了。

    我需要使用通知。我使用的是Firebase,我下载了google-services.json,放在我的根目录中,在Android上运行,并通过Firebase云消息进行了测试。一切正常。

    从apple developer console下载p8证书并放在Firebase console上:

    enter image description here

    所以,当我在index.js上启动这个时,ondeviceready:

    onDeviceReady: function() {
        this.receivedEvent('deviceready');
        //alert("ciao");
    
        app.push = PushNotification.init({
            "android": {
                "senderID": "xxxx"
            },
            "ios": {
              "senderID": "xxxx",
              "sound": true,
              "vibration": true,
              "badge": true
            },
            "windows": {}
        });
    
        app.push.on('registration', function(data) {
            alert(data.registrationId);
            console.log("registration event: " + data.registrationId);
            document.getElementById("regId").innerHTML = data.registrationId;
            var oldRegId = localStorage.getItem('registrationId');
            if (oldRegId !== data.registrationId) {
                // Save new registration ID
                localStorage.setItem('registrationId', data.registrationId);
                // Post registrationId to your app server as the value has changed
            }
        });
    
        app.push.on('notification', function(data) {
            console.log('notification event');
            alert("qualcosa ricevuto: " + data.message + data.title);
        });
    
        app.push.on('error', function(e) {
            //console.log("push error = " + e.message);
            alert("push error = " + e.message);
        });
    }
    

    为什么?我做错了什么?

    1 回复  |  直到 6 年前
        1
  •  1
  •   FishSaidNo    6 年前

    我假设您使用的是最新版本的cordova插件推送(v2.2.3)?

    <platform name="ios">
        <resource-file src="GoogleService-Info.plist" />
    </platform>
    

    data.registrationType 在你的 .on('registration') 回拨。值应该是 FCM APNS 然后registrationId将是原始APNs令牌,而不是Firebase令牌,在这种情况下,您的配置中存在一些错误。