[急] 用户注销登录后必须将app杀死才能收到推送

iOSL
2016-11-30 05:29 1.6k 0

APP安装完 第一次登录 通过标签可以收到推送,然后注销之后再登录同一个账号(或者其他账号)就收不到推送了

APP第一次运行: cityid是用户选择的

        JPUSHService.setTags([String(city.id)], alias: String(NSUserDefaults.standardUserDefaults().objectForKey(UserAlias))) { (code , tagg  , alins ) in
            print(code,    tagg,     alins)
        }

log :
[JPUSHService] app not registed, give up set tag:{( 53 )} alias:nil
这时候通过tag能收到推送

然后登录代码:

//UserAlias 参数是宏定义 保存alias

                [[NSUserDefaults standardUserDefaults] setObject:response.id forKey:UserAlias];
                NSString *cityId = [[NSUserDefaults standardUserDefaults]objectForKey:DEFAULTCITYID];

                dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0f * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
                    [JPUSHService setTags:[NSSet setWithObject:cityId] alias:response.id fetchCompletionHandle:^(int iResCode, NSSet *iTags, NSString *iAlias) {
                        DLog(@"rescode: %d, \ntags: %@, \nalias: %@\n", iResCode, iTags , iAlias);
                    }];
                });

log :  JPUSH | E - [JPUSHService] app not registed, give up set tag:{(
    53
)} alias:e8156c46124

现在通过alias的方式 也可以收到推送

然后注销登录
1.不做任何覆盖别名之类的操作,再通过标签或者别名的方式推送,就收不到推送

  1. NSString *cityId = [[NSUserDefaults standardUserDefaults]objectForKey:DEFAULTCITYID];
     [JPUSHService setTags:[NSSet setWithObject:cityId] alias:@"" fetchCompletionHandle:^(int iResCode, NSSet *iTags, NSString *iAlias) {
         DLog(@"rescode: %d, \ntags: %@, \nalias: %@\n", iResCode, iTags , iAlias);
     }];
    

log: rescode: 0,
tags: {(
53
)},
alias:

```
也是收不到推送

但是把app杀死 再次运行才能收的到推送
真机环境 iOS8 iOS10 都是这种状况

2个回答

热门排序
  • 已经解决了 外包公司的代码 在注销的方法里加了 [[UIApplication sharedApplication] unregisterForRemoteNotifications];这句代码= = 反注册... 展示全部
  • 首先需要确认的情况是: 其次来看一下你提供的信息1、 log :[JPUSHService] app not registed, give up set tag:{( 53 )} alias:nil这时候通过tag能收到推送[/quo 展示全部