iOS 8 requestWhenInUseAuthorization no Popup(iOS 8 requestWhenInUseAuthorization 没有弹出)
问题描述
我试图让我的 AppProject iOS 8 准备就绪.我读了很多关于
I tried to make my AppProject iOS 8 ready. I had read a lot about
[_locationManager requestWhenInUseAuthorization];
和plist中的条目
NSLocationWhenInUseUsageDescription
所以我更改了所有必要的代码行.
So I changed all the necessary code lines.
它工作正常,但现在我再次从我的 iOS 7 基础复制我的项目以包含新功能.但是当我对 iOS8 位置隐私进行更改时,弹出窗口不再出现.
It works fine, but now I have copied my project again from my iOS 7 base to include new features. But when I make the changes for the iOS8 Location Privacy the Popup doesn't appear anymore.
我的代码在我复制之前一直有效.
My code worked until I copied.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSLocationWhenInUseUsageDescription</key>
<string>tolle sache </string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>fapporite.${PRODUCT_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>
这是我的电话
- (instancetype)initWithCoder:(NSCoder *)coder
{
self = [super initWithCoder:coder];
if (self) {
_UserLocation = [[CLLocation alloc]init];
_locationManager = [[CLLocationManager alloc]init]; // initializing locationManager
_locationManager.delegate = self;
_locationManager.desiredAccuracy = kCLLocationAccuracyBest; // setting the accuracy
[_locationManager requestWhenInUseAuthorization]; // iOS 8 MUST
[_locationManager startUpdatingLocation]; //requesting location updates
NSLog(@"passed initwithcode");
}
return self;
}
我该如何解决这个问题?
How can I fix this?
推荐答案
来自文档
NSLocationWhenInUseUsageDescription (String - iOS) 描述了应用程序在运行时正常访问用户位置的原因在前台.当您的应用使用位置信息时包含此密钥直接跟踪用户当前位置的服务.这把钥匙不支持使用位置服务监控区域或监控使用重大位置更改服务的用户位置.这系统在显示的警报面板中包含此键的值请求使用位置服务的权限时的用户.
NSLocationWhenInUseUsageDescription (String - iOS) describes the reason why the app accesses the user’s location normally while running in the foreground. Include this key when your app uses location services to track the user’s current location directly. This key does not support using location services to monitor regions or monitor the user’s location using the significant location change service. The system includes the value of this key in the alert panel displayed to the user when requesting permission to use location services.
使用 requestWhenInUseAuthorization 时需要此密钥CLLocationManager 类的方法来请求授权位置服务.如果在您调用requestWhenInUseAuthorization 方法不包括这个键,系统会忽略您的请求.
This key is required when you use the requestWhenInUseAuthorization method of the CLLocationManager class to request authorization for location services. If the key is not present when you call the requestWhenInUseAuthorization method without including this key, the system ignores your request.
iOS 8.0 及更高版本支持此键.如果您的 Info.plist 文件包括这个键和 NSLocationUsageDescription 键,系统使用此键并忽略 NSLocationUsageDescription 键.
This key is supported in iOS 8.0 and later. If your Info.plist file includes both this key and the NSLocationUsageDescription key, the system uses this key and ignores the NSLocationUsageDescription key.
阅读它这里.
我发现将此键添加到 info.plist 的最简单方法是右键单击 info.plist 并选择
I find that the easiest way to add this key to your info.plist is to right click you info.plist and choose
打开为->源代码
然后在最后before </dict></plist>
<key>NSLocationWhenInUseUsageDescription</key>
<string></string>
如果你愿意,你可以在 <string></string>
之间添加一个文本,向用户描述你为什么要使用他/她的位置.此文本将显示在警报的默认文本下.
If you want you can add a text in between <string></string>
that describes to the user why you want to use his/hers location. This text will show up under the default text in the alert.
这篇关于iOS 8 requestWhenInUseAuthorization 没有弹出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:iOS 8 requestWhenInUseAuthorization 没有弹出
基础教程推荐
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01