友盟获取devicetoken===nsdata转成nsstring为空问题的解决( IOS为什么获取不到设备的 DeviceToken)

首先,请确保用的是真机测试,而不是模拟器。

然后,请确定您的证书是否导入正确:

http://blog.segmentfault.com/zengfanren/1190000000376953

确认App首次运行有没有弹出打开通知的对话框

如果没有的话,请确定:

首先确认App是第一次安装运行没有弹出(系统只提示一次) 
可以把App删除后,再重新build运行一次
如果确实是第一次安装运行且没有弹出,请仔细按照证书配置的要求重新生成一遍Provisioning Profiles。

您还可以先通过  didFailToRegisterForRemoteNotificationsWithError:(NSError *)err
{
    
    NSString *error_str = [NSString stringWithFormat: @"%@", err];
    NSLog(@"Failed to get token, error:%@", error_str);
    
}确定下是什么错误。





如果有的话,请确定获取device  token的方法是正确的。


方法1:在 didRegisterForRemoteNotificationsWithDeviceToken 中添加如下语句

NSLog(@"%@",[[[[deviceToken description] stringByReplacingOccurrencesOfString: @"<" withString: @""]
                  stringByReplacingOccurrencesOfString: @">" withString: @""]
                 stringByReplacingOccurrencesOfString: @" " withString: @""]);
方法2:在 didFinishLaunchingWithOptions:(NSDictionary *)launchOptions中 开启UMessage的Log,然后寻找deviceToken的字段

  //for log
  [UMessage setLogEnabled:YES];
以上任一方式都可在控制台获取一个长度为64的测试设备的DeviceToken串




26



上一篇:IOS可以自定义App在前台接受到消息的弹出框么
下一篇:消息发送后很长时间才到,或者有时能收到有时收不到


沙发
ioswork
ioswork 发表于 2015-7-7 17:23:46 | 只看该作者
楼主,我的app第一次打开的时候有弹出提示框,但是为什么我的没有deviceToken呢?我按文档的方法设置了呀,而且我在didfinish的里面设置了log为YES,在didRegisterForRemoteNotificationsWithDeviceToken方法里面也打印了,为什么还是获取不到呢

板凳
push更新
push更新 发表于 2015-7-7 18:29:49 | 只看该作者
如果还是不行IOS首先用以下代码判断有木有错误:

didFailToRegisterForRemoteNotificationsWithError:(NSError *)err
{
    
    NSString *error_str = [NSString stringWithFormat: @"%@", err];
    NSLog(@"Failed to get token, error:%@", error_str);
    
}
同时:
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
    [UMessage registerDeviceToken:deviceToken];
    
    NSLog(@"didRegisterForRemoteNotificationsWithDeviceToken success");
    
    NSLog(@"%@",[[[[deviceToken description] stringByReplacingOccurrencesOfString: @"<" withString: @""]
                  stringByReplacingOccurrencesOfString: @">" withString: @""]
                 stringByReplacingOccurrencesOfString: @" " withString: @""]);
    
}

  其中[UMessage registerDeviceToken:deviceToken];不能注释掉。
如果还是不行的话,可以再次对app进行卸载重装。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值