美文网首页iOS应用开发
ios10获取设备deviceToken

ios10获取设备deviceToken

作者: huanyingmili | 来源:发表于2017-02-13 08:45 被阅读1520次

    实现:获取devicetoken(ios10 xcode8)

    一、开发者AppDeveloper 注册证书:

    开发证书,发布证书(此处步骤大家应该都会比较熟悉,点击进入开发者开发证书以及发布证书创建

    二、应用内部设置:

    1、在Targets-->Capabilities-->Push Notifications开关设置成 ON

    打开Push Notifications开关,自动生成.entitlements文件

    2、在Targets-->Capabilities-->Background Modes开关设置成 ON

    Modes:勾选 Remote notifications

    3、在Targets-->Build Phases-->Link Binary With Libraries

    导入UserNotification.framework系统库文件

    libstdc++6.0.9

    三、在AppDelegate.m文件中设置

    1、导入系统库文件

    #import

    2、设置代理

    @interfaceAppDelegate()

    3、注册方法,应用注册设置代理

    - (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {

    [[UIApplication

    sharedApplication]registerForRemoteNotifications];

    [UNUserNotificationCenter

    currentNotificationCenter].delegate=self;;

    [self.windowmakeKeyAndVisible];

    returnYES;

    }

    4、

    #pragma mark ------------------------------推送处理--------------------------------------------

    //app允许接受远程通知以后利用该回调回取token

    - (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken {

    NSString*deviceTokenString = [[[[deviceTokendescription]

    stringByReplacingOccurrencesOfString:@"<"withString:@""]

    stringByReplacingOccurrencesOfString:@">"withString:@""]stringByReplacingOccurrencesOfString:@" "withString:@""];

    if(![AppDelegateAPP].deviceToken) {

    [AppDelegateAPP].deviceToken= deviceTokenString;

    }

    CLog(@"本地存储deviceToken = %@", deviceTokenString);

    }

    //app允许接受远程通知以后token获取失败

    - (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error {

    NSLog(@"DeviceToken获取失败,原因:%@",error);

    [AppDelegateAPP].deviceToken=@"c7ef3cb5e31a40a084672d55f46cfd964b9b32ddf62d3b4b0609c4a52837aa41";

    }

    以上完成应用注册的相关操作,可以用真机获取到设备的deviceToken。

    欢迎大家评论交流~

    相关文章

      网友评论

      • Dreamhai:好奇怪的是:ios 9的我可以获取成功,但是换成ios10的就获取不了token,这个方法也不走,该设置的都设置了
        小y想吃糖:iOS10注册方法
        UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
        center.delegate = self;
        [center requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionCarPlay) completionHandler:^(BOOL granted, NSError *_Nullable error) {
        if (!error) {
        NSLog(@"request authorization succeeded!");
        }
        }];

        [[UIApplication sharedApplication] registerForRemoteNotifications];
        你可以改成这个试试,证书申请的时候要搞清楚该开发环境还是生产环境,如果是安装手机测试包,就是Xcode直接运行这种,用开发环境,如果是上架或者TestFlight测试,用生产环境

      本文标题:ios10获取设备deviceToken

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