Ionic - OneSignal 在 iOS 13.x 上不起作用
Posted
技术标签:
【中文标题】Ionic - OneSignal 在 iOS 13.x 上不起作用【英文标题】:Ionic - OneSignal doesn't work on iOS 13.x 【发布时间】:2019-11-25 20:09:45 【问题描述】:我的 ionic 3 应用和 OneSignal 有问题。
该应用在 android 版本和 ios 版本 12.x 上运行良好,但在 iOS 13.* 中没有任何反应。
在 OneSignal 仪表板中查看未注册的设备。我也没有在我的应用程序中获取 playerid(调用 getIds() 方法)。
app.component.ts:
constructor(platform: Platform,
statusBar: StatusBar,
private oneSignal: OneSignal,
public api: ApirestProvider,
private alertCtrl: AlertController,
splashScreen: SplashScreen)
platform.ready().then(() =>
statusBar.styleDefault();
splashScreen.hide();
this.handlerNotifications();
);
private handlerNotifications()
this.oneSignal.startInit('xxxxxxxxxxxxxxxxxxxxxxxxxx', 'xxxxxxxxxxxxx');
this.oneSignal.inFocusDisplaying(this.oneSignal.OSInFocusDisplayOption.Notification);
this.oneSignal.handleNotificationOpened()
.subscribe(jsonData =>
let alert = this.alertCtrl.create(
title: jsonData.notification.payload.title,
subTitle: jsonData.notification.payload.body,
buttons: ['OK']
);
alert.present();
);
this.oneSignal.getIds().then(identity =>
console.log("Player ID:" + identity.userId);
this.api.player_id=identity.userId;
).catch(err =>
this.api.showMsg("Error en getIds():" + err);
);
this.oneSignal.endInit();
离子信息:
Ionic:
Ionic CLI : 5.4.1 (/usr/local/lib/node_modules/ionic)
Ionic Framework : ionic-angular 3.9.2
@ionic/app-scripts : 3.2.1
Cordova:
Cordova CLI : 9.0.0 (cordova-lib@9.0.1)
Cordova Platforms : ios 4.5.5
Cordova Plugins : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 2.3.1, (and 14 other plugins)
Utility:
cordova-res : not installed
native-run : not installed
System:
NodeJS : v10.16.3 (/usr/local/bin/node)
npm : 6.9.0
OS : macOS Mojave
Xcode : Xcode 11.2.1 Build version 11B500
cordova 插件列表:
cordova-open-native-settings 1.5.2 "Native settings"
cordova-plugin-actionsheet 2.3.3 "ActionSheet"
cordova-plugin-advanced-http 2.0.2 "Advanced HTTP plugin"
cordova-plugin-device 2.0.2 "Device"
cordova-plugin-dialogs 2.0.1 "Notification"
cordova-plugin-email-composer 0.9.1 "EmailComposer"
cordova-plugin-file 6.0.1 "File"
cordova-plugin-geolocation 4.0.1 "Geolocation"
cordova-plugin-googlemaps 2.4.6 "cordova-plugin-googlemaps"
cordova-plugin-ionic-keyboard 2.1.3 "cordova-plugin-ionic-keyboard"
cordova-plugin-ionic-webview 2.3.1 "cordova-plugin-ionic-webview"
cordova-plugin-network-information 2.0.2 "Network Information"
cordova-plugin-splashscreen 5.0.2 "Splashscreen"
cordova-plugin-statusbar 2.4.2 "StatusBar"
cordova-plugin-whitelist 1.3.3 "Whitelist"
mx.ferreyra.callnumber 0.0.2 "Cordova Call Number Plugin"
onesignal-cordova-plugin 2.4.6 "OneSignal Push Notifications"
在 XCODE iPhone 模拟器(目标 iOS 13.2.2 / iPhone 11)上运行项目工作正常,进行订阅并获取玩家 ID。
它只是在 iPhone 13.x 真实设备上不起作用。
有什么建议吗?
最佳 Rgs
【问题讨论】:
我在没有 Cordova 的情况下将 Ionic 5 与电容器一起使用,到目前为止它的工作原理是设备在 onesignal 处注册,但出现错误“Apns Delegate Never Fired”。您找到解决问题的方法了吗? 【参考方案1】:使用 2.6.0 或更高版本更新您的 onesignal 插件,然后它在 ios 13 中工作正常。
【讨论】:
以上是关于Ionic - OneSignal 在 iOS 13.x 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章
ionic2 - 用户订阅 OneSignal 后如何获取玩家 ID
如何在通知 ionic 3 onesignal 中使用自定义声音?