iOS8新特性之基于地理位置的消息通知UILocalNotification

iOS8新特性之基于地理位置的消息通知UILocalNotification

大家好,又见面了,我是全栈君。

    
     苹果在WWDC2014上正式公布了全新的iOS8操作系统。

界面上iOS8与iOS7相比变化不大,只是在功能方面进行了完好。
                                iOS8新特性之基于地理位置的消息通知UILocalNotification
     iOS8中更新和公开了非常多接口,当中有一项本地消息通知UILocalNotification,大家肯定都不陌生。

可是在iOS8中对其进行了优化和改进。

如今它能够依据地理位置发起消息通知,即我们在App中设置好一个坐标(经纬度)和半径(范围),当装有本App的设备进入本区域后,App就会发出一个消息通知。
 iOS8新特性之基于地理位置的消息通知UILocalNotification iOS8新特性之基于地理位置的消息通知UILocalNotification iOS8新特性之基于地理位置的消息通知UILocalNotification

      详细操作例如以下:
1.要导入我们须要的类库CoreLocation.framework
     iOS8新特性之基于地理位置的消息通知UILocalNotification

2.登记位置信息,获取用户的授权

CLLocationManager *locMan = [[CLLocationManager alloc] init];
locMan.delegate = self;
// request authorization to track the user’s location
[locMan requestWhenInUseAuthorization];

同一时候还要进行配置plist文件
iOS8新特性之基于地理位置的消息通知UILocalNotification
当执行到最后一句时,用户会收到系统提示,同意后app获得授权。

                                                                           iOS8新特性之基于地理位置的消息通知UILocalNotification

3.获取授权后app就会回调方法

- (void)locationManager:(CLLocationManager *)manager
    didChangeAuthorizationStatus:(CLAuthorizationStatus)status 
{
   // check status to see if we’re authorized
   BOOL canUseLocationNotifications =
         (status == kCLAuthorizationStatusAuthorizedWhenInUse);
   if (canUseLocationNotifications) {
       [self startShowingLocationNotifications];
    }
}

回调方法里注冊通知

- (void)startShowingNotifications 
{
    UILocalNotification *locNotification = [[UILocalNotification alloc]
                                           init];
    locNotification.alertBody = @“You have arrived!”;
    locNotification.regionTriggersOnce = YES;
    locNotification.region = [[CLCircularRegion alloc]
                           initWithCenter:LOC_COORDINATE
                                   radius:LOC_RADIUS
                               identifier:LOC_IDENTIFIER];
    [[UIApplication sharedApplication]
         scheduleLocalNotification:localNotification];
}
//- (instancetype)initWithCenter:(CLLocationCoordinate2D)center //区域的中心 经纬度
//                            radius:(CLLocationDistance)radius //区域半径   范围
//                        identifier:(NSString *)identifier;    //通知的唯一标示 描写叙述

4.到了一定区域后触发消息通知。收到消息后app回调方法

-(void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
{
    NSLog(@"%s",__func__);
}
- (void)application:(UIApplication *)application didReceiveLocalNotification:
    (UILocalNotification *)notification
{
    CLRegion *region = notification.region;
    if (region)
    {
       [self tellFriendsUserArrivedAtRegion:region];
    }
}

注:
查看官方文档,了解很多其它UILocalNotification 新增API。
本服务须要位置信息登记;
假设位置信息被禁用。这种方法application:didReceiveLocalNotification: 就不会被调用。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115683.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 诛仙3 私服架设 仿官网「建议收藏」

    诛仙3 私服架设 仿官网「建议收藏」背景:想情怀一把,抑或想怀旧一下,利用官网的乐趣+私服的金钱,打造一个全新的玩法,这就是我的追求。当然了,好东西是要分享的。 全套工具在百度云盘中: 链接:http://pan.baidu.com/s/1i5HG9YP密码:zg7i…

  • python一般用来做什么?

    python一般用来做什么?python作为现在一门非常火的语言,它的运用场景非常的广泛,其实很多开发语言都可以用在不同的领域做开发.python并不为特定目的而产生。不过它就是一个通用的脚本语言,也被称做胶水语言,胶水是指,p

  • 系统管理日志怎么看_19年发生了太多事日志

    系统管理日志怎么看_19年发生了太多事日志说起日志,大家都是耳熟能详的,一大堆日志插件映入眼帘,日志收集的方式也历历在目,但是,今天我们的重点不仅仅是收集日志了,今天我们主要说说怎么管理日志收集日志日志管理的第一件事,就是日志的收集。日志

  • android scaleanimation动画,Android 动画之ScaleAnimation应用详解「建议收藏」

    android scaleanimation动画,Android 动画之ScaleAnimation应用详解「建议收藏」android中提供了4中动画:AlphaAnimation透明度动画效果ScaleAnimation缩放动画效果TranslateAnimation位移动画效果RotateAnimation旋转动画效果本节讲解ScaleAnimation动画,ScaleAnimation(floatfromX,floattoX,floatfromY,floattoY,intpivotX…

    2022年10月16日
  • DeepFake技术–DeepFakes 概述(一)(二)

    DeepFake技术–DeepFakes 概述(一)(二)AI换脸技术——DeepFakes概述(一)编者按:本文由图普科技编译自ExploringDeepFakes。2017年12月,一个名为“DeepFakes”的用户在Reddit上发布了一个“假视频”,视频中的艺人其实是后期加上的,但是看起来几乎毫无破绽。他利用了深度学习和AI新技术,在成人电影中把演员的脸替换成某个艺人的脸,从而制作成了这个看上去以假乱真的视频。从视频发布以后…

  • 获取WebView里的网页文本内容[通俗易懂]

    获取WebView里的网页文本内容

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号