根据 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,确保使用最新版本:https://documentation.onesignal.com/docs/cordova-sdk-setup
对于 Cordova 和 Cordova 变体,许多问题可以通过检查来解决:
- 您的 OneSignal appID 在引号之间没有任何额外的空格。
- 您正在使用 Cordova 6.4.0 或更新版本
- 如果使用 CocoaPods,请确保安装了 1.2.0 或更高版本:https://documentation.onesignal.com/docs/cordova-sdk-setup#section-ios-requirements
- 您必须在实际设备上进行测试,而不是浏览器。
- 更新到最新版本的 OneSignal SDK,运行:
cordova 插件 rm onesignal-cordova-plugin
cordova插件添加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
关于ios - 用于推送通知的 OneSignal 注册在 Cordova 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30068220/