美文网首页
极光推送的添加别名

极光推送的添加别名

作者: 雨燕oc | 来源:发表于2017-11-21 09:47 被阅读0次
在你的下面这个方法里加上通知部分,直接复制就行了

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
#pragma mark - 通知
//    NSString *advertisingId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
    //Required
    if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {
        //可以添加自定义categories
        [JPUSHService registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge |
                                                          UIUserNotificationTypeSound |
                                                          UIUserNotificationTypeAlert)
                                              categories:nil];
    } else {
        //categories 必须为nil
        [JPUSHService registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |
                                                          UIRemoteNotificationTypeSound |
                                                          UIRemoteNotificationTypeAlert)
                                              categories:nil];
    }
    //Required
    // 如需继续使用pushConfig.plist文件声明appKey等配置内容,请依旧使用[JPUSHService setupWithOption:launchOptions]方式初始化。

// 下面这个是老方法,需要加plist,现在不用了,用下面的方法,这个设置一遍就行了
// 把这个appKey换成你自己的appKey就行了,其他直接复制
//    [JPUSHService setupWithOption:launchOptions];
    [JPUSHService setupWithOption:launchOptions
                           appKey:@"a59c6b6037300edb93384d55"
                          channel:@"Publish channel"
                 apsForProduction:NO];
 return YES;
}


#pragma mark - 通知
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {

    /// Required - 注册 DeviceToken
    [JPUSHService registerDeviceToken:deviceToken];
}

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {

    // Required,For systems with less than or equal to iOS6
    [JPUSHService handleRemoteNotification:userInfo];
}

// 后台更新的方法,实现这个方法必须开启后台模式,一般情况下不用,注释了就行了
//- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
//    
//    // IOS 7 Support Required
//    [JPUSHService handleRemoteNotification:userInfo];
//    completionHandler(UIBackgroundFetchResultNewData);
//}

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
    //Optional
    NSLog(@"did Fail To Register For Remote Notifications With Error: %@", error);
}

但是,如果你想区分用户单推,比如QQ消息这种,你就得设置唯一标示,也就是别名
这个时候需要注意两点:
1, 在登录成功的时候设置别名(一般就是userID什么的唯一标示)

2.在推出登录的时候把别名取消,否则及时推出也能收到推送,就不安全了

// 登录成功
#pragma mark - 推送别名设置
        [JPUSHService setTags:nil alias:userID fetchCompletionHandle:^(int iResCode, NSSet *iTags, NSString *iAlias) {
            XHLog(@"%d-------------%@,-------------%@",iResCode,iTags,iAlias);
        }];

// 退出登录
#pragma mark - 推送,用户退出,别名去掉

        [JPUSHService setAlias:@"" callbackSelector:nil object:self];

好了,说俩坑
第一,描述证书一定要导清楚,不然出现乱七八糟的问题

1.会报错APNs is not available,please check your provisioning profile and certificatio
2.你会发现你设置的开发环境跟测试环境完全没有卵用,而且乱七八糟的表现...我这边5测试机在开发环境无限收到推送信息,完全停不下来,6sp的完全收不到,但是在生产环境下完全没有问题,推得好好地...
3.你实现的单推完全没有作用

第二,别名设置不上,控制台打印信息app not registed, give up set tag:

感觉是由于推送服务还没接通就去设置了,所以设置的别名被放弃了。
这个看好像有很多状态吗设置,不过没具体去弄,百度了下用的延迟操作,代码如下

#pragma mark - 推送别名设置
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [JPUSHService setTags:nil alias:userID fetchCompletionHandle:^(int iResCode, NSSet *iTags, NSString *iAlias) {
            XHLog(@"%d-------------%@,-------------%@",iResCode,iTags,iAlias);
        }];
    });

注意一条,我建议用这个回调的方法直接打印状态码来调试,这样很方便的能找到问题,恕我直言...我没搞明白那个回调的方法里面怎么传参数...

设置tag就是群体设置,也是区分用户用的,比如说性别男女什么的,跟别名一个效果就不单独说了

相关文章

  • 极光推送的添加别名

    但是,如果你想区分用户单推,比如QQ消息这种,你就得设置唯一标示,也就是别名这个时候需要注意两点:1, 在登录成功...

  • 2022-03-01

    极光推送插件 注:目前极光推送的功能只有别名推送,后续如需增加其他功能在做添加操作 原生插件暴露给js的id为:v...

  • 极光推送添加设备别名

    最新的极光推送中首先是要初始化APPkey,然后再设置对应的设备名 //生产 // [JPUSHService ...

  • 极光推送(别名)

    记录下极光推送的集成点滴 初始化工作 监听极光是否登录成功,只有登录成功才能注册别名 需要注意的地方

  • 极光推送开发环境和生产环境推送收不到的原因

    公司的项目之前是外包做的,同事测试极光推送用别名推送,直接失败,我也是懵了,对于从来没做过极光推送的人来说,别名是...

  • 极光推送-别名篇

    初始化 这里就不在说明如何初始化极光推送了,附上极光官方文档极光官方文档。 开发环境和生产环境区别 这里的解释下,...

  • 极光推送——别名设置

    1.使用别名,光网中进行别名推送——(下面会有字段设置),这跟后台一样的处理,所以完成不需要管后台如何推,使用这就...

  • ios 极光推送别名

    app需求中存在点对点推送 app中又存在多个登录账号 作区分的方法就是使用别名 每个登录用户在服务器端都存有一个...

  • iOS极光推送设置别名

    一。如何设置标签或者别名 消息推送,有时候只想推送给指定的人或者指定的版本,那么这时候我们就需要对设备设置标签或者...

  • 2018-11-27 极光推送发送控制/别名/取值

    1.需求:登录以后才能接收推送通知 //极光推送绑定别名JPushInterface.init(LoginActi...

网友评论

      本文标题:极光推送的添加别名

      本文链接:https://www.haomeiwen.com/subject/coeivxtx.html