这是我在phonegap上的应用程序上的代码,用于获取注册ID。总是成功获取注册ID。
const push = PushNotification.init({
android: {
},
browser: {
pushServiceURL: 'http://push.api.phonegap.com/v1/push'
},
ios: {
alert: "true",
badge: "true",
sound: "true"
},
windows: {}
});
push.on('registration', function ( data ) {
recordRegistrationID( data.registrationId ); //Pseudo
});
push.on('notification', function ( data ) {
// data.message,
// data.title,
// data.count,
// data.sound,
// data.image,
// data.additionalData
});
push.on('error', (e) => {
// e.message
});
然后,我尝试通过将其卷曲到Firebase Cloud Messaging API上,从我的PHP服务器(example.com)将带有存储的注册ID的推送通知发送到该设备,它始终返回MismatchSenderId。
{"multicast_id":6660509895358893455,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"MismatchSenderId"}]}
我已经尝试编译.APK并在我的移动设备上运行它。我总是成功地获得令牌,但是消息永远无法发送到PhoneGap应用检索到的注册ID。
进行更多研究,似乎是因为PhoneGap实际上检索了注册ID,但它作为发件人与PhoneGap本身联系在一起,所以其他发件人将无法工作。
我是否可以假设这个?在这种情况下,如何使用PHP代替PhoneGap获取Firebase Cloud Messaging的注册ID?
谢谢。
答案 0 :(得分:0)
进行更多研究,似乎是因为PhoneGap实际上检索了注册ID,但它作为发件人与PhoneGap本身联系在一起,所以其他发件人将无法工作。
这似乎是一种奇怪的行为。生成的令牌与应用程序实例和 Firebase项目绑定在一起。您能否提供提及的链接?关联的令牌根本无法更改为其他发送者。
话虽如此,目前尚无法从后端获取注册令牌。如上所述,令牌与应用程序实例相关,因此只能在客户端应用程序端生成。