• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

iOS7 和 iOS 8 定位服务

[复制链接]
菜鸟教程小白 发表于 2022-12-12 13:59:46 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个应用程序,我想向它添加一些基于位置的功能。它同时支持 iOS 7 和 8,但我遇到了一些问题。

我只想在用户点击某个 viewController 上的某个按钮时请求位置权限。问题是权限请求会在应用程序启动后立即出现。更准确地说,在第一个 viewController 的 ViewWillAppear 和 ViewDidAppear 函数之间。

我之前尝试过的:

  1. 在 plist 中有 NSLocationWhenInUseUsageDescription 键(适用于 iOS8)。 代码方面:

    self.locationManager = [[CLLocationManager alloc] init];
    self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
    self.locationManager.delegate = self;
    if ([self.locationManager respondsToSelectorselector(requestWhenInUseAuthorization)]) {
        [self.locationManager requestWhenInUseAuthorization];
    }
    [self.locationManager startUpdatingLocation];
    
  2. 删除 plist 键 -> 这导致 iOS8 中的弹出窗口不再出现,但在 iOS7 中仍然出现

目前,与 CoreLocation 相关的每一段代码都已被注释掉,但我仍然会看到询问我权限的对话框(仅限 iOS7)

我不知道我还能尝试什么,所以非常感谢任何帮助



Best Answer-推荐答案


这就是 iOS 7(及之前)的工作方式。您不负责授权对话框:系统负责。你不能让它出现;系统看到您正在使用核心位置,会代表您显示它。这正是 iOS 8 改变的地方。在 iOS 7 中,您所能做的就是查看位置服务是否已打开以及您的应用是否已获得授权。

关于iOS7 和 iOS 8 定位服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28173973/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap