友盟获取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
分享到: 新浪微博 微信 QQ空间 QQ好友 0



上一篇: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进行卸载重装。

你可能感兴趣的:(ios_友盟分享推送)