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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql前缀索引及其选择「建议收藏」

    mysql前缀索引及其选择「建议收藏」有时候需要索引很长的字符列,比如BLOB、TEXT或者很长的VARCHAR类型的列,通常可以索引开始的部分字符,这样可以大大节约索引空间,从而提高索引效率。

    2022年5月23日
    35
  • 在WAMPSERVER下增加多版本的PHP(PHP5.3,PHP5.4,PHP5.5)支持。

    在WAMPSERVER下增加多版本的PHP(PHP5.3,PHP5.4,PHP5.5)支持。

    2021年9月2日
    56
  • idea2021激活码获取-激活码分享

    (idea2021激活码获取)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月21日
    353
  • tkmapper教程_tkmapper

    tkmapper教程_tkmapperTKmapper初学springboot的集成,方式分为两大类:基于starter的自动配置基于@MapperScan注解的手工配置在starter的逻辑中,如果你没有使用@MapperScan注解,你就需要在你的接口上增加@Mapper注解,否则MyBatis无法判断扫描哪些接口。<dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spri

    2022年10月7日
    3
  • c# 看门狗 程序_看门狗制作东西怎么切换

    c# 看门狗 程序_看门狗制作东西怎么切换C#制作简单的看门狗程序这个类实现了程序退出能重启,但是程序停止运行弹出对话框,进程并没有退出却无法重启。希望有好建议处理这个bug的朋友提出你们的宝贵意见。源码如下:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Diagnostics;usi

    2025年6月12日
    7
  • 服务器的系统和NAS有啥区别,nas和云服务器区别「建议收藏」

    服务器的系统和NAS有啥区别,nas和云服务器区别「建议收藏」nas和云服务器区别内容精选换一换没有区别。创建整机镜像有三种方式:使用云服务器创建、使用云服务器备份创建,以及使用云备份创建。使用备份创建镜像与使用云服务器创建镜像原理一样。云服务器创建镜像时,先为云服务器创建备份,再通过备份创建镜像,中间过程为系统自动完成的。所以二者没有区别。云耀云服务器与弹性云服务器的主要区别:云耀云服务器:云耀云服务器是可以快速搭建简单应用的新一代云服务器,云耀云服务器…

    2022年6月30日
    22

发表回复

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

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