网络编程

当前位置:永利402游戏网站-永利402com官方网站 > 网络编程 > 系统弹框内容设置

系统弹框内容设置

来源:http://www.xtcsyb.com 作者:永利402游戏网站-永利402com官方网站 时间:2019-09-17 16:09

在使用定位、获取用户通讯录时候,需要用户授权。手机会弹出授权框,那我们想定制弹框的内容怎么办呢。

定位权限请求

  • 从iOS 6开始,苹果在保护用户隐私方面做了很大的加强,以下操作都必须经过用户批准授权
    • 要想获得用户的位置
    • 想访问用户的通讯录、日历、相机、相册等等

infoPlist设置关键字来实现前三个是定位的,后面一个是通讯录的。

用户权限-弹框选择

  • 当想访问用户的隐私信息时,系统会自动弹出一个对话框让用户授权
![](https://upload-images.jianshu.io/upload_images/1566132-ad2bfe0b6c6ceddf.png)

定位权限请求.png

-   一旦用户选择了“Don’t
    Allow”,意味着你的应用以后就无法使用定位功能

图片 1

定位权限请求2.png

--

  • 为了使用户在弹框申请授权时拒绝授权,使应用部分功能无法使用,应该向用户解释授权的目的
  • 开发者可以在Info.plist中设置NSLocationUsageDescription说明定位的目的(Privacy - Location Usage Description)
    • 一般是让产品经理提供定位的目的
    • 示例图:
    ![](https://upload-images.jianshu.io/upload_images/1566132-442c14588219007d.png)

    定位权限请求3.png

图片 2截图.png

iOS 8.0+ 的定位适配

  • 从iOS 8.0开始,苹果进一步加强了对用户隐私的保护。
  • 当APP想访问用户的隐私信息时,系统不再自动弹出一个对话框让用户授权
  • 解决方案:
    调用iOS 8.0的API,主动请求用户授权
// 请求允许在前后台都能获取用户位置的授权
- (void)requestAlwaysAuthorization

// 请求允许在前台获取用户位置的授权
- (void)requestWhenInUseAuthorization
  • 务必在info.plist文件中配置对应的键值, 否则以上请求授权的方法不生效

    • NSLocationAlwaysUsageDescription :允许在前后台获取GPS的描述
    • NSLocationWhenInUseDescription : 允许在前台获取GPS的描述

iOS 9.0 定位

  • iOS 9.0 如果当前处于前台授权状态,默认是不可以后台获取用户位置。
    • 但可以设置以下属性为YES,就可以继续获取后台位置,但是会出现蓝条
@property(assign, nonatomic) BOOL allowsBackgroundLocationUpdates
  • 使用注意:必须设置对应的后台模式:location updates
  • iOS 9.0 可以单次请求用户位置
- (void)requestLocation
- (void)locationManager:(nonnull CLLocationManager *)manager didUpdateLocations:(nonnull NSArray<CLLocation *> *)locations  // 成功调用
- (void)locationManager:(nonnull CLLocationManager *)manager didFailWithError:(nonnull NSError *)error // 失败调用

本文由永利402游戏网站-永利402com官方网站发布于网络编程,转载请注明出处:系统弹框内容设置

关键词:

上一篇:没有了

下一篇:设置tableview的滚动条偏移