通知与自定义消息

详解极光推送的 4 种消息形式—— iOS 篇
详解极光推送的 4 种消息形式—— Android 篇

如果需要收到消息不展示,则请推送自定义消息,或者推送 alert 为空(通知内容为空)的通知消息,需要的信息放在 extra 里面。


  1. 「通知与自定义消息有什么区别?」Android - iOS

  2. 「自定义消息」

    • Android:长连接正常,则可收到,但不展示(需要开发者自行代码实现 通知栏,或者转为本地通知来展示)

    • iOS必须 App 处于前台 才能收到,但不展示(需要开发者自行代码实现 通知栏,或者转为本地通知来展示)。iOS 的自定义消息不分环境,通知消息会区分

    • iOS SDK 版本如果是 JPush 3.0.5 之前的版本 + jcore1.1.5 至 jcore1.1.7版本,对自定义消息的接收会有影响,请升级。

  3. 「通知消息」

    • 点击通知后,需要 跳转到 具体的页面 需要开发者自行实现。 参考文档

    • iOS:iOS 的 apns 通知消息有环境之分,请特别注意服务端推送时的设置和客户端的配置 点我

    • iOS:一般情况下要「点击了通知栏」才会走获取消息的方法,如果需要不点击就获取,请 阅读该贴

    • iOS 10 以下系统横幅展示支持 title,iOS 10 及以上系统支持 subtitle,推送时如何传值请仔细的阅读该贴

  4. 「收到了通知消息但是不展示」

    • alert 为空,则默认不展示,在控制台里就是此处应填:

    • 请首先注意 测试手机 对 App 通知展示 的各种设置是否有打开。

    • 极光在 Android 或 iOS 新系统发布之后会以最快的速度发布兼容版本,请注意更新到最新版本的 SDK

    • Android:Android 8 系统,设置 targetSDKVersion>=26 时,华为手机可能不弹出通知,因为华为未兼容 Android 8.0 通知 Channel ,后续他们的修复情况暂时未知。可以尝试降低 targetSDKVersion

    • 小米手机,muui10 有通知过滤功能。在设置->通知和状态栏 关闭通知过滤。

    • Android:「魅族和小米:有个消息盒子」,将一些不重要的信息或者屏蔽的信息放在里面

如何让消息盒子的消息正常显示在通知栏

  • iOS :iOS 10 以前的系统,只能当 App 处于后台或杀死状态,收到消息才会有提醒。
  • iOS 10 可以实现 当 App 处于前台时 展示通知,实现该方法:(若不想展示,则不实现即可)
    - (void)jpushNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(NSInteger))completionHandler

    • 前台展示通知,可添加三种提醒(可自行选择几种实现,不写 alert 则不会有横幅提醒)

      completionHandler(UNNotificationPresentationOptionBadge | UNNotificationPresentationOptionSound | UNNotificationPresentationOptionAlert);

    • iOS杀死或者后台状态下的横幅声音等的控制
      注册 apns 代码中有提供类型选择:

      entity.types = JPAuthorizationOptionAlert|JPAuthorizationOptionBadge|JPAuthorizationOptionSound;

    • 可能出现的问题是:在之前开发过程中,选择过某提醒类型安装在 iOS 8系统上 ,之后去掉该类型重新安装依旧有这个类型提醒,这是因为 iOS 8 的特性:

    • iOS 8 如果之前安装请求过通知权限,允许,之后一段时间内(具体不详)都不会再提示,会记住你之前的选择。

    • 你可以试着先把通知提醒的开关都关掉,然后卸载重装下;或者换一台没有安装过的 iOS 8 安装测试。



如果对你有帮助,点个赞 呗ლ(╹◡╹ლ)

点这里返回常见问题目录,不吹不黑,收藏本帖可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ