5

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

window.plugins.OneSignal.registerForPushNotifications();

但它没有出现。并且设备无法注册。

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

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

4

1 回答 1

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 离子示例:https ://github.com/OneSignal/OneSignal-Ionic-Example

于 2018-01-13T01:50:34.630 回答