国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

iOS8之后對定位和消息推送API的修改

2019-11-14 18:23:33
字體:
來源:轉載
供稿:網友

1.定位    

 定位是定位,地圖是地圖,在iOS中 CLLocation是專門負責定位或者獲取位置信息的;而MAPkit是專門負責地圖顯示的

    位置管理器(CLLocationManager) :負責獲取,同時負責監控用戶位置發生變化
   
    //[注意] 位置管理器一定要寫成屬性,不是屬性出棧就沒有了
    _manager = [[CLLocationManager alloc] init];
    
    //設置位置管理器代理   <CLLocationManagerDelegate>
    _manager.delegate = self;
    
    //設置最小更新位置
    _manager.distanceFilter = 50.0f;  //單位 是 “米”
    //設置定位精確度,精確度越高 越費電
    _manager.desiredAccuracy = kCLLocationAccuracyBest;

   

   [注:]蘋果在iOS8里面修改了定位授權協議,也就意味著你原來的app在iOS8上很可能無法定位。目前最好的辦法就是在app啟動的時候調用IOS8的定位授權API來獲取用戶的授權,這樣就不要在其他地方做修改了,如下

 

    [_manager requestAlwaysAuthorization];

    [_manager requestWhenInUseAuthorization];

     [注:]   還需要在plist文件里面對 NSLocationAlwaysUsageDescription,NSLocationWhenInUseDescription 倆個屬性進行添加,value可以為空;

    //讓位置管理器生效,開始更新位置變化

    [_manager startUpdatingLocation];

 

2.消息推送API的修改

 iOS常用的第三方推送服務器常用的有極光和信鴿;本次介紹信鴿服務器

 

從上圖可以看出:

1.首先在你的app中注冊通知, 注冊通知時區別就在iOS8前后,區別如下

 

    //[注]如果你的系統是iOS8或者之后的   

    if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {
        
        
        //設置用戶通知的表現形式
        [[UIapplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound) categories:nil]];
        
        
        //注冊遠程通知  申請 device token
        [[UIApplication sharedApplication] registerForRemoteNotifications];
        
    } else {
        //[注]注冊一個遠程通知,這個遠程通知,有文字,角標,聲音
        [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
    }

 

    //注冊信鴿服務 只有注冊這個服務后,之后的數據才會發往信鴿服務器,只有注冊后,信鴿服務器才可以向這個app 推送消息
    

+(void)startApp:(uint32_t)appId appKey:(NSString *)appKey;

參數說明:
     access Id: 通過xg.QQ.com注冊app時得到的Access Id。
    Access key:通過xg.qq.com注冊app時得到的Access key。

 

    例如: [XGPush startApp:1234567 appKey:@"IF3W91AV58NC"];

 

2、接收到 APNS 服務器返回給我們的 device token
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{
    
    //向信鴿注冊這個設備標示符
    //注冊之后信鴿的設備列表中才有你的這個真機
    NSString *token = [XGPush registerDevice:deviceToken];
    NSLog(@"token: %@",token);
    
    
}

 

3、應用程序將device token發送給PUSH服務端程序。

4、服務端程序向APNS服務發送消息。

5、APNS服務將消息發送給iPhone應用程序。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 饶河县| 富民县| 阳山县| 潮安县| 铜梁县| 汉川市| 张北县| 英吉沙县| 雷波县| 南安市| 安陆市| 佳木斯市| 毕节市| 元江| 曲水县| 汶川县| 德阳市| 通山县| 额尔古纳市| 华阴市| 南开区| 青川县| 大宁县| 新余市| 齐河县| 涿州市| 永川市| 湟源县| 柘城县| 开阳县| 乌兰县| 娱乐| 宁化县| 汽车| 夹江县| 循化| 秦皇岛市| 洪雅县| 陵川县| 崇明县| 汝阳县|