flutter 接极光推送需要注意的点

899 阅读2分钟
flutter版本: 2.0.3
jpush_flutter: 2.0.1
IOS版本: 14.4.2

当我根据官方文档对接好了极光并收到了第一条推送时,我非常高兴,直到。。。

苹果收不到推送

以前接过mob的推送,他们是自动请求授权的。但是极光不会,需要自己寻找合适的时机请求推送授权。而这一点,在对接文档上是没写的,他们写在了 APIS 文档里面。而我恰巧没仔细看。所以需要调用 applyPushAuthority 申请通知权限才行。

在 IOS 中,应用在前台不弹消息弹框。

在调用了 applyPushAuthority 后,我以为就不用再调他了,因为已经有权限了嘛。但是,app启动后如果不调他,就会出现 APP 在前台收到了推送后系统不会弹消息弹框。后来我在 App 启动后都会调用一次 applyPushAuthority 这样在前台才会有消息弹框。但是要注意第一次启动不要这样做,会影响用户体验。应该在用户同意了隐私授权后再申请通知授权。

在 IOS 中,点击通知不走 onOpenNotification 回调

我在做完这一切后,发现点击通知后,走的是 onReceiveNotification 回调。他应该走 onOpenNotification 回调呀!

如果你也出现了这个现象,则有可能是没有处理 Badge ,需要及时清理掉它,我发现在收到通知后,或者点击通知后,启动 APP 后,要调用 jPush.setBadge(0); 。这样在下次收到通知后,点击通知才会走 onOpenNotification 回调。感觉有点莫名其妙,但他就是这样的。

对接小米厂商推送报错

Key XIAOMI_APPKEY expected String but value was a java.lang.Float. The default value <null> was returned.

Key XIAOMI_APPID expected String but value was a java.lang.Float. The default value <null> was returned.

写 manifestPlaceholders 时不要直接把ID写进去,像这样 XIAOMI_APPKEY : "555166644444"

要保留 MI- 这个字,一定不要删了,我手贱给删了,正确的应该是这样:

XIAOMI_APPKEY : "MI-555166644444"