Ios 用于推送通知的OneSignal寄存器在Cordova中不工作

Ios 用于推送通知的OneSignal寄存器在Cordova中不工作,ios,cordova,onesignal,Ios,Cordova,Onesignal,根据OneSignal的网站,只需添加此代码即可请求用户允许应用程序接收推送通知: window.plugins.OneSignal.registerForPushNotifications(); 但它没有出现。设备无法注册 document.addEventListener("deviceready", function() { window.plugins.OneSignal.init( "project_id",

根据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函数。

以上代码适用于更旧版本的OneSignal Cordova SDK,请确保使用最新版本:

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

  • 您的OneSignal appID在引号之间没有任何额外的空格
  • 您正在使用Cordova 6.4.0或更新版本
  • 如果使用CoCoapod,请确保已安装1.2.0或更新版本:
  • 您必须在实际设备上进行测试,而不是在浏览器上
  • 更新至OneSignal SDK的最新版本,运行:
  • cordova插件rm onesignal cordova插件
    cordova插件添加onesignal cordova插件

    许多用户只需要创建一个干净的构建来删除错误。请参阅Cordova变体故障排除指南:

    最后,检查Github示例以比较代码: 科尔多瓦示例:
    例如:

    启动应用程序和调用registerForPushNotifications()函数时,是否可以检查设备日志中是否有错误?请参阅以获取完整的设备日志。在运行应用程序之前,最好通过单击垃圾桶来清除垃圾。另外,请按照《iOS安装指南》中的说明进行检查,确保您的配置文件已启用“推送通知”。