菜鸟教程小白 发表于 2022-12-12 13:59:46

iOS7 和 iOS 8 定位服务


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

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

<p>我之前尝试过的:</p>

<ol>
<li><p>在 plist 中有 NSLocationWhenInUseUsageDescription 键(适用于 iOS8)。
代码方面:</p>

<pre><code>self.locationManager = [ init];
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
self.locationManager.delegate = self;
if () {
    ;
}
;
</code></pre> </li>
<li><p>删除 plist 键 -> 这导致 iOS8 中的弹出窗口不再出现,但在 iOS7 中仍然出现</p></li>
</ol>

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

<p>我不知道我还能尝试什么,所以非常感谢任何帮助</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>这就是 iOS 7(及之前)的工作方式。您不负责授权对话框:系统负责。你不能让它出现;系统看到您正在使用核心位置,会代表您显示它。这正是 iOS 8 改变的地方。在 iOS 7 中,您所能做的就是查看位置服务是否已打开以及您的应用是否已获得授权。</p></p>
                                   
                                                <p style="font-size: 20px;">关于iOS7 和 iOS 8 定位服务,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/28173973/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/28173973/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS7 和 iOS 8 定位服务