MobPush iOS 端常见问题
推送的下发逻辑是什么样的,什么叫离线推送
推送下发时候目前如果应用进程处于在线状态,走我们 MobTech 通道,当应用进程结束,推送下发会走厂商通道,如果厂商下发失败,或者未配置厂商等配置,且应用进程是杀死状态,那么推送会进入到离线池中,在离线时间有效期内,当用户再次打开 APP,推送会再次下发。接口推送时候默认离线时间为 1 天,离线时间可自定义最高为 30 天。
通知和自定义消息区别
通知:通知是推送的常规类型,在线走 tcp 通道,结束进程走厂商(APNS),可以通过系统层面讲通知展示到手机的通知栏。自定义消息:自定义消息实际为透传消息,需要应用进程存活,服务端会将推送的 boday 等参数下发到客户端,由客户端回调接收,自行处理。
什么叫 regsiterid,别名和标签分别是什么含义
regsiterid 和别名:其实都是设备的唯一标识,推送本质是将消息推送到设备上,regsiteid 是 MobTech 给您生成的,但是 regsiteid 并不是不会改变,所以需要每次获取最新的 regsiterid。别名相当于您自定义的设备标识。其本质是和 regsiterid 绑定,所以也是唯一的,且同一台设备只能设置一个,如果有 AB 俩台设备同时设置一个别名,那么按照设置顺序最后设置的那台设备别名生效。regsiterid 和别名均适用于单点登录。标签:标签功能,可以理解为群体推送,可以用来区分用户群体,一个标签可以给多个设备设置,每个设备也可以具备多个标签,适用于用户群体区分。也使用于多点登录逻辑。
推送成功后,后台没有数据
推送成功后,后台统计不到数据,分为俩种情况(此处默认推送您客户端可以获取到 regsiterid)。第一种情况:当推送下发的设备推送权限被关掉,那么不会下发,且没有推送数据统计;第二种:推送任务成功下发,但是推送任务进入到离线池中,此时当用户再次打开 APP 收到推送,才能被后台统计到
推送手机收不到怎么办
iOS:目前推送分为在线推送和厂商 APNS 推送,由于 iOS 区分开发环境和生产环境所以第一时间查看下推送是否环境不匹配,第二步一定要确认应用运行状态下能否收到推送。调试推送顺序,先调试 debug 环境下的在线推送,在调试 debug 环境下杀死 APP 的推送。如果在线可以收到,杀死 APP 收不到,可通过 smartpush 工具校验证书。Android:安卓和 iOS 本质推送原理一样,但是安卓不区分测试和生产,所以一定要确定是否在线可以收到推送,如果在线收不到推送,请检查下 AppKey 相关是否配置有问题,客户端获取 regsiterid 是否能获取成功,推送通知是否打开,注意有一些通知会被归类到不重要通知栏。如果在线可以收到,请检查厂商相关配置,以及是否推送内容,推送频次被厂商限制。注意:如果还不能解决收到请及时联系技术支持帮您解决。
推送有测试环境和正式环境吗
iOS:推送存在测试环境和生产环境,这个是由于 iOS 本身推送就区分推送开发证书和生产证书,只需要在代码中设置如下:
注意:iOS 测试生产环境需要 achiver 打 ADHOC 类型的 ipa 包去测试生产哦
推送支持富媒体推送吗,支持语音播放以及图片展示吗
iOS: 支持富媒体推送,需要 iOS 系统 10 以上设备,按照 demo 设置推送扩展,即可实现图片的播放,音频播放由于应用进程被杀死,所以需要在扩展中只能播放本地音频哦。Android: MobPush 通道支持富媒体,厂商通道暂未开通,后续会开通厂商通道支持)
静默推送和正常推送的区别
正常推送用户会收到推送内容、声音,应用处于后台或者 kill 可以收到推送信息,但是不会走任何回调,点击推送内容进入 APP 后才会进入点击回调,要想处于后台走 apns 回调的话,需要勾选静默推送, 静默推送是一种特殊的远程推送,没有推送内容声音,不用点击推送内容也不用进入 APP 就会执行回调,用户毫无感觉。
MobPush 支持自定义声音吗,支持自定义跳转吗?
iOS:支持自定义声音,只需要将声音文件拖入到项目中,对应推送传入声音文件名称即可,支持自定义跳转,可在对应 vc 中设置标识跳转,详情参考 demo。Android :支持自定义声音设置,方法同上,支持自定义跳转,可通过 scheme 跳转,详情参考 demo。
{"statue":4801,"error":"请求 IP 不匹配或者未设置"}
MobTech 后台可以设置 IP 白名单,如果设置后只有固定 ip 可以进行推送,不设置的话默认所有 IP 均可以推送。
推送任务是否有限制
目前推送限制分为以下几种:第一种:广播限制,推送广播类型每天限制 100,每小时限制最高 10 次;推送 regsiterid 或者别名以及标签无限制,但单次下发最高下发 1000 个 regsiterid,别名或者标签(备注别名长度自定义限制字节长度【1-100】)。第二种: 接口频率限制,推送接口(发送+查询)的接口频率限制,默认 500 次/分钟;webapi 全部接口的请求频率限制,默认 800 次/分钟。(可通过技术支持调高频率如果需求比较高)。
推送任务可根据地区进行地理范围推送
推送是可以通过设置推送地理条件进行区域推送的,目前精准到为市级。参考 v3 推送接口。
调用服务端推送报错怎么办 4001 4002 4005 等
服务端推送报错,4001 请求缺少必要参数。4002 请求参数错误,4005 数据校验失败(sign 校验失败)这些通常都是参数设置或者加密时候的问题,可以通过 postman 进行尝试参数:
推送回调有的时候可以走,有的时候不能走,断点也没走是什么导致的
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didReceiveMessage:) name:MobPushDidReceiveMessageNotification object:nil]; 需要检查这个方法是不是每次都调用到了,有可能是只调用了一次这个方法,并不是每次都调用了
后台显示推送消息是已取消状态
第一您这边 rid 或者别名传的不对,或者 rid 或者别名未入库,第二种手机设备关闭推送权限等等都会已取消,需要打开推送重新启动应用
如果推海外的话,需要加以下接口设置
国内推海外也是可以的,但是到达率应该会下降,因为海外连国内 tcp 服务不稳定,所以最好切换到海外服务器,需要调用这个接口[MobPush setRegionID:1],如果切换到海外服务器,推送的时候,后台推送需要选择海外版推送,如果调用 api 接口推送,需要用海外域名接口 http://abroad.api.push.mob.com/v3/push/createPush 接口去推送,传值可以参考国内接口去传值
企业账号的证书能否使用 MobPus
h 企业账号的证书也可以 使用 MobPush
推送打开 APP 可以收到图片,但是关闭 APP 就收不到图片,是什么问题呢
需要检查下扩展是否添加
Push 后台上传证书,一直报错问题
有些用户一直说他的证书是对的,但是上传还是报错,可能他之前申请的证书是可以支持开发环境也可以支持生产环境测试的,这样的上传的不行的,需要去根据我们的文档里的制作证书的方法在重新制作一个只支持开发环境的证书在上传
API 请求的时候一直提示 5001:服务端未知错误问题
需要检查请求的参数,参数里可能有的传值有问题
关于 Push 推送的一些说明
新增用户数:当日新增与 MobTech 服务器保持连接的用户数活跃用户数:当日内 MobPush SDK 与 MobTech 服务器建立过长链接的用户总数量目标数:近 30 天内 MobPush SDK 与 MobTech 服务器建立过长链接的用户总数量,且在装、推送权限开启(其实也叫有效目标数)下发数:由服务器实际下发到客户端的消息总数,包含 TCP 下发数(不包含离线池的数据)+MobTech 请求厂商,并厂商返回成功的数量到达数:客户端 SDK 接收到消息的数量点击数:Push 点击数+补量点击数
Push 点击数:点击通知栏消息的消息数量(透传不统计点击)
补量点击数:通过补量任务带来的点击数下发率:下发数/目标数到达率:到达数/下发数点击率:点击数/到达数触达率:到达数/目标数关于率的统计都精确到小数点 2 位
在 flutter 上生产环境推送 APNS 收不到
通过 flutter build iOS 来打包然后发布到蒲公英上,推送的时候选择 iOS 正式环境推送,前台能收到,但后台不能收到的问题,需要改用 achiver 打 ADHOC 类型的 ipa 包 然后发布到蒲公英后,在重新安装测试,这样前台后台才能收到。
评论