溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ios8下LocationManager及Nsnotification使用

發(fā)布時(shí)間:2020-06-10 19:58:40 來源:網(wǎng)絡(luò) 閱讀:854 作者:Demidroid 欄目:移動(dòng)開發(fā)
  1. location service使用

    ios8之前l(fā)ocationservice在應(yīng)用開啟

    self.locationManager = [[CLLocatonManager alloc] init]

    [self.locationManager startUpdatingLocation];

    在iOS8上需要加上kCLAuthorizationStatusAuthorizedAlways,在app中的info.plist中添加NSLocationAlwaysUsageDescription 或者 NSLocationWhenInUseUsageDescription其中一個(gè)key,value的值可以任意填寫,會(huì)在請(qǐng)求獲取位置的對(duì)話框中顯示

    請(qǐng)求獲取位置權(quán)限

        // iOS 8 - request location services via requestWhenInUseAuthorization.

        

        if ([self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) {

            [self.locationManager requestWhenInUseAuthorization];

        } else {

            // iOS 7 - We can't use requestWhenInUseAuthorization -- we'll get an unknown selector crash!

            // Instead, you just start updating location, and the OS will take care of prompting the user

            // for permissions.

            [self.locationManager startUpdatingLocation];

          }



        實(shí)現(xiàn)代理方法,當(dāng)獲取到這個(gè)權(quán)限時(shí)

 - (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status

{

    // We only need to start updating location for iOS 8 -- iOS 7 users should have already

    // started getting location updates

    if (status == kCLAuthorizationStatusAuthorizedAlways ||

        status == kCLAuthorizationStatusAuthorizedWhenInUse) {

        [manager startUpdatingLocation];

    }

}

2.ios8設(shè)置獲取通知的權(quán)限和之前有所不同

#ifdef __IPHONE_8_0

    if(SYSTEM_VERSION_LESS_THAN(@"8.0")){

        UIRemoteNotificationType myTypes = UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound;

        [[UIApplication sharedApplication] registerForRemoteNotificationTypes:myTypes];

    }

    else{

        UIUserNotificationSettings* notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil];

        [application registerUserNotificationSettings:notificationSettings];

        [application registerForRemoteNotifications];

    }

    

#else

    UIRemoteNotificationType myTypes = UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound;

    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:myTypes];

#endif

獲取remotenotification

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{

    

    completionHandler(UIBackgroundFetchResultNewData);

    NSLog(@"remote notifation %@",userInfo);


}



//獲取到推送的通知

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

   

}


設(shè)置setbadgeNumber

- (void)setApplicationBadgeNumber:(NSInteger)badgeNumber

{

    UIApplication *application = [UIApplication sharedApplication];

    

#ifdef __IPHONE_8_0

    // compile with Xcode 6 or higher (iOS SDK >= 8.0)

    

    if(SYSTEM_VERSION_LESS_THAN(@"8.0"))

    {

        application.applicationIconBadgeNumber = badgeNumber;

    }

    else

    {

        if ([self checkNotificationType:UIUserNotificationTypeBadge])

        {

            NSLog(@"badge number changed to %d", badgeNumber);

            application.applicationIconBadgeNumber = badgeNumber;

        }

        else

            NSLog(@"access denied for UIUserNotificationTypeBadge");

    }

    

#else

    // compile with Xcode 5 (iOS SDK < 8.0)

    application.applicationIconBadgeNumber = badgeNumber;

    

#endif

}


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI