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: 就不会被调用。

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Mariadb 安装教程 Windows版[通俗易懂]

    Mariadb 安装教程 Windows版[通俗易懂]MariadbWindows版安装教程1、下载软件:https://mariadb.org/download/2、双击运行mariadb-10.5.5-winx64.msi,3、点击iaccept…接受许可协议4、选择组件以及软件安装路径5、设置数据库的密码6、默认下一步7、点击install进行安装即可…

    2022年6月13日
    40
  • 普天通信JavaEE开发岗面试题

    普天通信JavaEE开发岗面试题

    2021年11月14日
    56
  • 基于STC89C52的自动循迹小车项目

    基于STC89C52的自动循迹小车项目摘要:本文根据对目标金属物的非接触式探测定位和移动的具体要求,以STC89C52RC单片机为控制核心,结合驱动模块、三个电感模块(LDC1000电感数字传感器)、测速模块和显示模块,设计并实现了一种自动循迹小车。该小车能在规定的具有0.6-0.9mm细铁丝标识的平面跑道上自动循迹前进,且在行进过程中能够检测到硬币并报警,同时小车的运行时间、距离等信息可在显示屏上实时显示。经过多次测试表明,该循迹小…

    2022年6月7日
    89
  • ps怎么导出图片形式_ps导出图片变色

    ps怎么导出图片形式_ps导出图片变色在PS中做好图之后,我们会有下面几种导出图片的需求,下面分别介绍一下将每个图层分别存储为一个文件文件——脚本——将图层导出到文件其中可以仅仅导出可见图层,这样,我们就能够通过控制图层窗口中个图层

    2022年8月5日
    5
  • 2021Vue.js面试题汇总及答案【全网最全 建议收藏】「建议收藏」

    2021Vue.js面试题汇总及答案【全网最全 建议收藏】「建议收藏」文章目录前言一、Vue.js基本问题1.1.Vue响应式原理1.2.Vue.js的特点1.3.Vue.js双向绑定的原理1.4.Vue中如何监控某个属性值的变化?1.5.Vue.js3.0放弃defineProperty,使用Proxy的原因1.6.Vue2中给data中的对象属性添加一个新的属性时会发生什么?如何解决?前言之前博主有分享过Vue学习由浅到深的文章(Vue学习之从入门到神经)现在Vue学的好的话马内真的不必后端差所以今天博主就汇总下有关Vue的相关面试题

    2022年6月12日
    47
  • Metropolis Hasting算法

    Metropolis Hasting算法

    2021年12月8日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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