开发环境ionic4 + angular8 + cordova
增加推送通知插件
// 这两个插件都可以使用
ionic cordova plugin add cordova-plugin-fcm-ng
npm install @ionic-native/fcm
// or 任选其一,推荐使用这个。插件主人更新比较勤快也经常修复一些问题
ionic cordova plugin add cordova-plugin-fcm-with-dependecy-updated
npm install @ionic-native/fcm
// 经测试这两个插件和cordova-plugin-local-notification本地通知有冲突。
// 当APP前台运行的时候接收不到通知。后台才可以。
// 只有当卸载cordova-plugin-local-notification插件后正常.
// 经过网上查询资料如果两个功能都想使用的话得用下边的插件
npm i cordova-plugin-fcm-with-dependency-updated-apns@1.2.1
ionic cordova plugin add cordova-plugin-fcm-with-dependency-updated-apns@1.2.1
ionic cordova plugin add cordova-plugin-local-notification@0.9.0-beta.3
代码使用
import { FCM } from '@ionic-native/fcm/ngx';
constructor(private fcm: FCM) {}
...
this.fcm.subscribeToTopic('marketing');
this.fcm.getToken().then(token => {
backend.registerToken(token);
});
this.fcm.onNotification().subscribe(data => {
if(data.wasTapped){
console.log("Received in background");
} else {
console.log("Received in foreground");
};
});
this.fcm.onTokenRefresh().subscribe(token => {
backend.registerToken(token);
});
this.fcm.unsubscribeFromTopic('marketing');
使用的时候挺简单。麻烦就麻烦到配置这里。
需要申请Firebase项目配置。
1. 增加一个项目。项目里边再注册android 或者 IOS app资料。
2. 下载android 或者 ios 的goodgle文件保存到项目根目录下边。
3. 进入Firebase网站打开新建的APP项目页面。准备填入APNSkey
4. 进入苹果开发网站配置生成APNSKEY
登录苹果开发者网站-> account -> Certificate.... -> Identifiers -> 找到自己APP的identifiers进入
往下拉拉拉找到 Push Notifications 点击Configure。
分别为两个建立各自的证书(Certificate)..push notifi和 development都生成.
5. 点击苹果开发者网站里的keys生成 .p8结尾的文件。用来上图上传
至此在程序里测试就行了
或者使用这个里边的测试https://cordova-plugin-fcm.appspot.com
总结一下错误:
1. 控制台报这个错误的话 Failed to fetch APNS
token Error Domain=com.firebase.iid Code=1001 "(null)"。
或者尝试
- The app is restored on a new device
- The user uninstalls/reinstall the app
- The user clears app data.