app发布到appstore之后,api发送带参数推送,应用在打开的状态下,收不到推送(ps:无横幅展示和对参数的处理),但是后台显示发送成功!

ios
标签: #<Tag:0x00007fb83ff5c518>

(Mr J) #1


#2

首先,请确认你们的别名是设置成功的

其次:iOS10以下,处于前台,收到消息是不会展示的,log会打印,iOS10以上才有提供接口,在前台展示通知


(Mr J) #3

别名是设置成功的,我用自己的手机从appstore下载,可以收到,但是同事的iPhoneSE就是收不到,
已经确认所有的推送设置均已打开,


#4

1、iOS系统多少?
2、你们现在能不能取到这个 设备的registrationID?


(Mr J) #5

1.系统是ios11;
2.收不到应用内消息的iPhoneSE的registrationID是: 121c83f7601d770e1ee;


#6

你给的这个registrationID的注册时间是2017-11-01 13:33:13

你截图消息推送的时间是:2017-11-01 09:13:37

此时你设备都没有注册成功,何谈收消息?更别说设置推送的这个别名了


(Mr J) #7

这是刚刚,api发的推送


#8

麻烦将你的msgid贴文本信息。


(Mr J) #9

Message ID:29273398976714776


#10

1、这条消息包含 自定义消息和通知消息

2、自定义消息已经收到,前台接收不展示,可以 看到log

3、通知消息 因为「环境不一致」而失败,说明你这个ID是开发环境的;请确认你这台手机安装的App是生产环境下的,且ID没有给错

4、请检查你是否有使用idfa,卸载重装App后registrationID是否会产生变化,如果不会,iOS11预计与idfa有关。


(Mr J) #11

回复 3,刚才是我得问题,确实环境不一致:
回复 4,未使用idfa
问题:
不卸载,直接下载App Store上的版本,是否会引起registrationID变化,如果不会,下边的截图是我不删除原应用的前提下,直接下载App Store的版本,然后发送api推送消息的截图,请帮我确认问题:


Message ID: 54043197394766155
我们的业务逻辑是,收到api发送带参数的应用内消息,在- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler方法内根据推送参数内容,对应用首页的数据进行更新,
现在的问题是,我自己的手机在前台的情况下,可以收到api推送,首页内容也进行相应的数据更新,但是iPhoneSE收不到,数据也不更新,
一直未找明原因,请帮忙分析


#12

1、你们在前台接收「不直接展示的消息」可以用自定义消息去实现,该消息不分开发或者生产,前台接收,默认不展示,且走极光服务器的消息,可免费保存5条离线消息

客户端获取: https://docs.jiguang.cn/jpush/client/iOS/ios_api/#_51
推送: https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push/#message

2、[quote=“ray, post:1, topic:3810”]
如果 App 不卸载,是直接覆盖安装,Android, iOS 上 RegistrationID 的值都不会变化。
[/quote]

这里有个说明,而由于APP的用户是不会出现这种场景的 我们并没有对这种场景做测试 建议用户卸载开发版本再进行安装;你们测试机测试的时候,应该卸载重装

3、所以现在请你卸载,安装生产的App后再去做测试

4、如果你们生产的App没法拿到registrationID,我也是没法帮你确认消息的送达状态的,建议你们在客户端加上「客户端监听广播,或调用接口 获取到 RegistrationID,然后将其保存到己方服务器,以备使用」这一步」