我正在使用Ionic3并使用FirebaseX Cordova插件(因为firebase插件根本无法使用),并且当应用程序处于前台(打开状态)时,消息在应用程序中的获得(不是作为通知)是完美的,但是当后台(使用其他应用程序)通知不显示...当我打开应用程序时,消息进入应用程序(不是作为通知)...
我使用的是Author示例(完全更改了包ID,因此我可以注册为Firebase项目)
我使用付费的开发者帐户,定义了APN,已上传到Firebase等。
激活功能中的远程通知(在Push和Background上)
但还是...
奇怪的是,当应用程序打开时,它在日志中说:
2019-10-25 11:20:50.152424-0300 FirebaseX Ionic 3示例[560:180512] FCM直接通道= true
,当应用程序进入后台时,登录信息显示:
2019-10-25 11:20:50.152424-0300 FirebaseX Ionic 3示例[560:180512] FCM直接通道= false
当我再次打开该应用程序时,它又返回到 true ,并收到通知!
我知道FCM是Firebase Cloud Messagin,所以...但是我不知道为什么会变成 false
请帮忙!谢谢!
答案 0 :(得分:1)
我找到了解决方案!也许可以帮助某人...现在,使用 FirebaseX Cordova插件,您需要明确寻求许可(对于旧的Firebase Cordova插件,是自动询问的...)< / p>
插入此代码:
this.firebasePlugin.grantPermission(function(hasPermission){
console.log("Permission was " + (hasPermission ? "granted" : "denied"));
});
就是这样(如果用户说“是”!)
答案 1 :(得分:0)
在firebasex cordova插件中,您必须征得这样的许可。
仅当hasPermission()返回false时,才可以调用GrantPermission():
window.FirebasePlugin.hasPermission(function(hasPermission){
if(!hasPermission){
window.FirebasePlugin.grantPermission(function(permissionGranted){
if(permissionGranted){
console.log("Permission granted");
}else{
console.warn("Permission denied");
}
});
}else{
console.log("Permission already granted");
}
});