iOS 10 收不到通知,请问是怎么回事?


(Yhd) #3

registrationID:18900000009,
msgID:4144135900,
SDK 3.0.2,
Xcode 8.2


#4

registrationID提供错误,请在客户端获取


(Yhd) #5

不好意思,我这边用的是别名,别名是18900000009


#6

请提供registrationID


(Yhd) #7

你好,我获取不到registrationID,不知道我获取方法是不是不对,


(Yhd) #8

这是获取方法 //2.1.9版本新增获取registration id block接口。

    [JPUSHService registrationIDCompletionHandler:^(int resCode, NSString *registrationID) {
        if(resCode == 0){
            NSLog(@"registrationID获取成功:%@",registrationID);
            
        }
        else{
            NSLog(@"registrationID获取失败,code:%d",resCode);
        }
    }];

写在appDelegate.m的didFinishLaunchingWithOptions方法里


#9

检查集成日志,是否有广播registrationID出来,监听到extern NSString * const kJPFNetworkDidLoginNotification; // 登录成功后再调用API获取。


(Yhd) #10

从今天下午开始,Jpush Log一直输出连接服务器失败,所以这个监听方法不走,现在我没办法获取registrationID,您能不能帮忙分析下是什么问题,今天前半天还存在连接成功的情况的


#11

给我提供你的日志,完整的日志。

我建议你换一个网络。


(Yhd) #12

您指的是我的设备Log吗?


#13

ios 10设备的日志,以及,检查你客户端的通知设置是否有关掉


(Yhd) #14

你好,我刚才将我的手机改用4G移动网络就走了您说的代理方法,也获取到了registrationID:121c83f76016ffe78e2,但是还是没获取到通知,还得麻烦您给分析下


#15

1、针对之前你的网络问题,如果连得公司的,或者有VPN的,就得检查是不是对网络有限制,内网使用说明

2、没收到消息的原因是 你这个设备没有设置该别名,你直接对registrationID推送消息测试一下

3、请在监听到登录成功之后再设置别名,且注意callback为0才是成功。


(Yhd) #16

您的意思是不是说这个registrationID:121c83f76016ffe78e2 没有对应的18900000009这个别名?但是,我在极光官网通过别名:18900000009,或者registrationID:121c83f76016ffe78e2发送通知,iOS10设备都可以收到,唯独我们自己的后台发送的通知收不到;之前我确实是在登陆成功后才设置别名,刚才打了断点发现callback也是0


#17

那说明此前给我提供的那个msgid推送的时候别名还没有设置成功。
现在你后台推送收不到,给一下msgid,你也可以自己对比官网推送的两个历史记录的区别


(Yhd) #18

这是我们后台发过来的通知的msgid: 4148391802


#19

你后台推送的生产环境的,要后台将apns_production改为false(推送开发环境),在options可选参数里面


(Yhd) #20

由于我们后台下班了,所以我就打了个包通过iTools装在手机里,然后在极光官网选择iOS生产环境、设备别名或者registrationID发送通知,结果是没收到;但是,通过广播的形式发送通知,手机却收到了,代码中环境设置是生产环境,即,
[JPUSHService setupWithOption:launchOptions appKey:JPush_AppKey
channel:JPush_Channel
apsForProduction:YES
advertisingIdentifier:nil];
不知道是不是还得需要后台协助解决一下?


#21

额,是这样的,你首先确认你当前,app端是要测试开发的还是生产的。

AppStore、ad-hoc、in-house证书打包的是生产的。xcode能直接运行打开的都是开发。

确定好app是什么环境之后,请让你后台也对应的将他推送代码里面的环境参数也改为对应的值:

options可选参数里面的apns_production的值:false为开发,true为生产

也可以在官网测试推送开发和生产的,app能收到哪个环境的就表示他现在是哪个环境。


(Yhd) #22

我理解您说的意思,总之,今天非常感谢:)!