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

界面上iOS8与iOS7相比变化不大,只是在功能方面进行了完好。

                               

     iOS8中更新和公开了非常多接口,当中有一项本地消息通知UILocalNotification,大家肯定都不陌生。

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

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

   



      详细操作例如以下:

1.要导入我们须要的类库CoreLocation.framework

    



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

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

同一时候还要进行配置plist文件



当执行到最后一句时,用户会收到系统提示,同意后app获得授权。





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






iOS8新特性之基于地理位置的消息通知UILocalNotification的更多相关文章

  1. iOS8新特性(1)——UIAlertController

    一.iOS8介绍 iOS8 新特性,主要是UI上进行了统一 1.UIAlertController 2.UIPresentaionController:管理所有通过modal出来的控制器(看笔记) 3 ...

  2. iOS8 新特性

    iOS8新特性主要体现在4方面 1.UIAlertController 对alert&actionSheet的封装 UIAlertController.h 提示框按钮的选择 typedef N ...

  3. ios8新特性widget开发-b

    os8发布已经有一段时间了,伴随着ios8同时也出现了许多新的特性,ios系统将会越来越开放,这是好事.其中一个新特性就是在下拉通知栏里加入了个性的widget,开发者可以自己定义widget的样式内 ...

  4. Asp.net Core中SignalR Core预览版的一些新特性前瞻,附源码(消息订阅与发送二进制数据)

    目录 SignalR系列目录(注意,是ASP.NET的目录.不是Core的) 前言 一晃一个月又过去了,上个月有个比较大的项目要验收上线.所以忙的脚不沾地.现在终于可以忙里偷闲,写一篇关于Signal ...

  5. iOS8新特性

    1. App Extension Programming Guide 2.LocalAuthentication.framework - Touch ID Authentication 3.Local ...

  6. iOS8新特性之交互式通知

    目前分为四个推送:用户推送,本地推送,远程推送,地理位置推送. if (IS_IOS8) { //1.创建消息上面要添加的动作(按钮的形式显示出来) UIMutableUserNotification ...

  7. HTML5新特性之跨文档消息传输

    1.同域限制 所谓“同域限制”是指,出于安全考虑,浏览器只允许脚本与同样协议.同样域名.同样端口的地址进行通信. 2.window.postMessage方法 浏览器限制不同窗口(包括iFrame窗口 ...

  8. iOS8新特性(1)-UIPopoverPresentationController使用

    从iOS 8开始,苹果提出新的 UIPopoverPresentationController代替UIPopoverController: 新的UIPopoverPresentationControl ...

  9. Ios8新特性-应用程序扩展

    一.什么是应用程序扩展? 应用程序扩展不是一个应用,它是主体应用程序(containing app)中一个单独的包,并能生成单独的二进制文件供其他应用调用. 个人感觉,类似于WP中的启动器,把系统当个 ...

随机推荐

  1. CSS3 @font-face详细用法(转)

      @font-face是CSS3中的一个模块,他主要是把自己定义的Web字体嵌入到你的网页中,随着@font-face模块的出现,我们在Web的开发中使用字体就不用再为只能使用Web安全字体烦恼了! ...

  2. java中this关键字和static关键字和super关键字的用法

    this关键字 1. this 关键字是类内部当中对自己的一个引用,可以方便类中方法访问自己的属性: 2.可以返回对象的自己这个类的引用,同时还可以在一个构造函数当中调用另一个构造函数(这里面上面有个 ...

  3. C# 多线程编程 ThreadStart ParameterizedThreadStart

    原文地址:http://club.topsage.com/thread-657023-1-1.html 在实例化Thread的实例,需要提供一个委托,在实例化这个委托时所用到的参数是线程将来启动时要运 ...

  4. java保留两位小数的方法

    01.import java.math.BigDecimal; 02.import java.text.DecimalFormat; 03.import java.text.NumberFormat; ...

  5. 实用iPhone Cydia插件

      BadgeClear(角标清除):可以清除App推送所在图标右上角出现的红色角标.在桌面长按图标后,图标开始左右摇动,再双击图标即可清除点击的图标角标.   Bitesms(短信):收费插件,具有 ...

  6. eval函数:\的应用

    <?php $string = "beautiful"; $time = "winter"; $str = 'This is a $string $tim ...

  7. mysql 表格中的数据量过大,修改数据库字段信息会花费很长的时间

    遇到几百万的数据操作遇到很多问题,比如分区,比如分表,sql语句的效率问题.努力学习好mysql优化还是很有必要的.

  8. [Python笔记]第四篇:内置函数

    本篇主要内容:内置函数 函数 参考:https://docs.python.org/3.5/library/functions.html 内置函数列表 一.数学运算类 abs(x)求绝对值 >& ...

  9. 成都Python工程师招聘

    最近公司开放python岗位,机会非常不错. 数据相关的岗位,可以接触很多好玩技术.成都是新建研发中心,整体技术气氛很不错. 坐标:成都 行业/部门:金融,数据部门 基本要求: python精通,学习 ...

  10. UVA 572 Oil Deposits油田(DFS求连通块)

    UVA 572     DFS(floodfill)  用DFS求连通块 Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format: ...