我正在使用ionic v3,phonegap-plugin-push和FCM为android和iOS构建应用程序,目前我没有收到Android通知的问题,但是我没有为iOS完成任何工作,甚至没有获得令牌设备。
我的应用在Xcode上具有推送通知功能,并且在开发人员中心,我已经在Firebase控制台上创建了我的APNs证书(.p12),更新了我的.plist文件,并更改为返回的APNs身份验证密钥(.p8)到.p12,但仍未获得令牌。
我在做什么错?我想念什么?
我注册设备的代码:
constructor(
_push: Push,
private _tp: ToastProvider,
private http: HttpClient,
private _events: Events
) {
this.pushObj = _push.init(this.getPushOpts());
this.pushObj.on('registration').subscribe(data => this.FCMToken = data.registrationId);
this.enablePushNotifications();
}
private getPushOpts (): PushOptions {
return {
android: {
senderID: SENDER_ID,
sound: true,
vibrate: true,
icon: 'icon',
iconColor: '#f89b3a'
},
ios: {
sound: true,
alert: true,
badge: true
}
}
}
我的家属版本
"phonegap-plugin-push": "^2.2.3"
"@ionic-native/push": "^4.20.0"
"cordova-ios": "4.5.5"
答案 0 :(得分:0)
您可以使用OneSignal处理您的通知。安装Native onesignal plugin。之后,导入您的插件
import { OneSignal } from '@ionic-native/onesignal';
之后,将项目配置为一个信号。这是代码:
triggerNotification() {
var iosSettings = {};
iosSettings["kOSSettingsKeyAutoPrompt"] = true;
iosSettings["kOSSettingsKeyInAppLaunchURL"] = false;
this.oneSignal.startInit("your_oneSignal_AppId", "your_appId").iOSSettings(iosSettings);
this.oneSignal.inFocusDisplaying(this.oneSignal.OSInFocusDisplayOption.Notification);
this.oneSignal.handleNotificationOpened()
.subscribe((msg) => {
//do something
});
this.oneSignal.endInit();
}
此代码将同时适用于Android和IOS两个平台。之后,您必须通过Pod安装OneSignal插件。第一步,为IOS构建项目(离子Cordova构建ios --prod),然后转至平台> ios。您可以看到文件名“ Podfile”,如果该文件不存在,请打开终端并转到项目目录>“平台”>“ ios”,然后输入“ pod init”,然后在那看到“ Podfile”并输入“ pod install” '以使用pod安装依赖项。现在,使用Xcode打开.xcworkspace文件。转到Build Phases>展开带有liberary的链接二进制文件>单击+号>单击Add Other>从项目的pod文件夹内选择onesignal插件。您的通知现在应该可以使用。 here是我在c-sharpcorner中的文章,您可以从那里参考。