zoukankan      html  css  js  c++  java
  • 2020年,极光推送,别名推送居然收不到了

    前言:最近公司新增业务,需要区别推送,那肯定就是极光的别名推送了,测试的时候发现以前可以现在不行了

    原因:原来是极光做了调整,好吧,都怪自己不常看站内信吧!

    解决办法:

    1、由于对别名的限制,客户端会注册不了别名,所以,当注册不了别名时,就是 JPUSHService setAlias 时返回码不为0时给后台发个请求,让后台清理一下别名绑定的设备,然后客户端再延迟2秒再次注册一下别名即可。

    + (void)JPUSHServiceSetAlias:(NSString*)alias {
        [JPUSHService setAlias:alias completion:^(NSInteger iResCode, NSString *iAlias, NSInteger seq) {
            NSLog(@"**********code:%ld content:%@ seq:%ld", iResCode, iAlias, seq);
            if (iResCode != 0) {
                // 6027 绑定别名失败  6014 请求繁忙
                [MyAPIClient postData:[API myDeleteAliasPath] params:@{} success:^(id data) {
                    dispatch_time_t delayTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC));
                    dispatch_after(delayTime, dispatch_get_main_queue(), ^{
                        [JPUSHService setAlias:alias completion:^(NSInteger iResCode, NSString *iAlias, NSInteger seq) {
                            NSLog(@"-----------code:%ld content:%@ seq:%ld", iResCode, iAlias, seq);
                        } seq:0];
                    });
                } failure:^(NSError *error) {
                }];
            }
        } seq:0];
    }

    2、当退出时解绑别名

        [JPUSHService deleteAlias:^(NSInteger iResCode, NSString *iAlias, NSInteger seq) {
           // 回调返回的 tags 为 nil。返回对应的状态码:0 为成功,其他返回码请参考错误码定义。seq 为调用时传入的会话序列号
        } seq:0];

    注:客户端初始化极光推送的时候,最好上传IDFA,因为iOS客户端卸载重装就会算是一个新设备。

    鉴于 iOS 系统设计上限制设备唯一标识,所以极光一直使用 Device Token 作为标识,也因为极光推送本身就是需要 Device Token 这个值才可能运作的。

    iOS 9 版本之后,每次卸载后重装都会导致 Device Token 变化,所以对于极光后台来说,都只能被识别为新用户。

    极光 SDK 新版本增加了 IDFA 选项,在集成初始化 SDK 时可选把 IDFA 这个值设置进来,这样极光后台就优先根据 IDFA 值来识别用户,从有一定的可能性应用被卸载后重装还能识别回老设备。

    IDFA 是广告标识符,是 iOS 专门为广告跟踪唯一地识别用户而设计的。在 iOS 设备上,设备 -> 隐私 -> 广告这个页面,有一个设置项:限制广告跟踪。默认是未选中状态的,即是关闭状态,是不限制的。用户可以选中,从而限制广告跟踪。设置项之外还有一个按钮:还原广告标识符…。如果用户点击了这个按钮,则 IDFA 值会变化。

  • 相关阅读:
    袁绍的刁难(recruitment.pas/cpp)
    数列分块入门 5 总结
    【五校联考3day1】旅游
    【五校联考3day1】食物
    jzoj 1274. 游历的路线(lines.pas/cpp)
    thinkphp框架开发功能要求
    java中 Bouncycastal库的使用
    Spring+Quartz实现定时任务的配置方法
    java缓存的使用
    Java注解教程:自定义注解示例,利用反射进行解析
  • 原文地址:https://www.cnblogs.com/ljcgood66/p/13819564.html
Copyright © 2011-2022 走看看