OneSignal订阅用户在从Pushwoosh切换后未更新



我有一个应用程序,在Pushwoosh上有7000名用户订阅。我们从Pushwoosh切换到OneSignal,并使用OneSignal文档更新了我们的应用程序。下载我们应用程序的新用户订阅了我们的推送通知,但旧用户没有更新。我们必须触发权限才能再次发送推送通知吗?苹果允许这样做吗?解决方法是什么?

通知权限&APNs令牌

通知权限是在应用程序级别授予的,因此无论您的应用程序中有什么SDK/库,如果用户已经接受通知和APNs令牌,它都可以读取。

OneSignal iOS SDK会自动检查是否已授予权限,并尝试注册APN令牌。OneSignal SDK将使用您放入应用程序中的app_id注册设备,如果这是您添加OneSignal后首次打开应用程序,则会创建一个新玩家。

除非用户完全卸载并重新安装了您的应用程序,否则APN每次都会返回相同的推送令牌。然而,为了防止苹果被指示旋转令牌,OneSignal SDK确实会调用APN寄存器API。

查找&解决问题

为了找到这个问题,我建议如下:;

  1. 一次在应用程序中只包含一个推送通知SDK,SDK可能会因方法转换或其他可能的问题而发生冲突。
    • 在这种情况下,如果您使用OneSignal,请删除Pushwoosh SDK
  2. 尝试通过升级应用程序在测试设备上重现此问题。
    • 在测试升级时,我建议在OneSignal SDK中启用详细日志记录。
      • OneSignal.setLogLevel(.LL_VERBOSE, visualLevel: .LL_NONE)
    • 同时,如果您正在OneSignal面板上获取用户,请注意这一点。
      • 如果OneSignal SDK获取APNs令牌时出现问题,仍然会有用户,他们只会显示为未订阅,并详细说明原因

这一切都取决于您如何从用户的设备中获取设备推送令牌并将其发送到OneSignal。一个常见的错误是,只有在用户第一次接受通知权限提示时才获取设备令牌。然而,设备推送令牌在未来的任何时候都会随机更改,这可能会导致用于发送通知的服务器上的设备推送代币过期。

为了解决这个问题,建议每次用户启动应用程序时注册推送通知。虽然这不会重新提示他们接受通知权限,但它会再次获取设备推送令牌。然后应该使用新的设备令牌更新您正在使用的推送服务。

TL;DR:在每次应用程序启动时注册设备推送令牌,并将其发送到推送服务器。

相关内容

  • 没有找到相关文章

最新更新