当设备中的位置关闭时,将显示此对话框。由于此对话,我的应用程序被拒绝了,其中没有任何关于应用程序为何需要位置的描述。
我已经在info.plist中添加了有关位置使用描述的所有键。但是它并没有占用描述。此对话未由我们的应用处理,也不知道它的显示位置。
欢迎大家提供帮助,以防止在此处出现说明。预先感谢
答案 0 :(得分:2)
这是一个iOS对话框(那是一个相当糟糕的对话框;所有单词都不应该大写)。
我建议您提出拒绝的理由,并解释说这是您无法控制的iOS对话框;
如果禁用了位置服务,Apple Maps将显示完全相同的对话框
答案 1 :(得分:0)
使用这些键添加此说明
@animals
Apple疯狂修改了许多许可。如果您要求提供NSLocationAlwaysUsageDescription。您仍然需要对NSLocationWhenInUseUsageDescription进行描述。
答案 2 :(得分:0)
几天前我们的应用程序也发生了这种情况,其中我们的应用程序由于您提到的类似原因而被拒绝。该消息不能是通用消息。因此,您可以显示一个自定义屏幕,在该屏幕上可以提及需要“位置”权限的确切原因,然后显示此弹出窗口。
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>MyApp uses your location to provide the list of products serviceable at your location and for better recommendation</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>MyApp uses your location to provide the list of products serviceable at your location and for better recommendation</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>MyApp uses your location to provide the list of products serviceable at your location and for better recommendation</string>
编辑:
在您的应用中的某些地方,您可能正在使用带有警报控制器的自定义消息
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:title message:**your custom message** preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *allowAction = [UIAlertAction actionWithTitle:@"Settings" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
}];
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
for (void(^ completion)(NSNumber * __nonnull status) in self.callbacks) {
completion(@(kCLAuthorizationStatusDenied));
}
}];
[alertController addAction:cancelAction];
[alertController addAction:allowAction];
[someViewController presentViewController:alertController animated:animated completion:nil];