推送通知的OneSignal注册在Cordova中不起作用

mac*_*ogo 5 ios cordova onesignal

根据OneSignal的网站,只需添加以下代码即可要求用户允许该应用接收推送通知:

window.plugins.OneSignal.registerForPushNotifications();
Run Code Online (Sandbox Code Playgroud)

但它没有显示。并且设备无法注册。

document.addEventListener("deviceready", function() {
            window.plugins.OneSignal.init( "project_id",
                                        {googleProjectNumber: "null_if_ios",
                                        autoRegister: false},
                                        mobile.didReceiveRemoteNotificationCallBack);
Run Code Online (Sandbox Code Playgroud)

对于Android,这很好用。无需调用registerForNotifications函数。

Jon*_*onF 0

上面的代码适用于旧版本的 OneSignal Cordova SDK,请确保使用最新版本:https ://documentation.onesignal.com/docs/cordova-sdk-setup

对于 Cordova 和 Cordova 变体,许多问题可以通过检查来修复:

  1. 您的 OneSignal appID 引号之间没有任何额外空格。
  2. 您使用的是 Cordova 6.4.0 或更高版本
  3. 如果使用 CocoaPods,请确保安装了 1.2.0 或更高版本:https://documentation.onesignal.com/docs/cordova-sdk-setup#section-ios-requirements
  4. 您必须在实际设备上进行测试,而不是在浏览器上进行测试。
  5. 更新到最新版本的OneSignal SDK,运行:

cordova plugin rm onesignal-cordova-plugin cordova plugin add onesignal-cordova-plugin

许多用户只需要进行干净的构建即可消除错误。请参阅 Cordova 变体故障排除指南:https ://documentation.onesignal.com/docs/troubleshooting-cordova-variants

最后,查看 Github 示例来比较代码: Cordova 示例: https: //github.com/OneSignal/OneSignal-Cordova-Example Ionic 示例:https://github.com/OneSignal/OneSignal-Ionic-Example