我正在开发一个基于地图和位置跟踪的iOS应用程序.当用户首次启动应用程序时,它会要求获得跟踪位置等的权限.唯一的问题是,当它正在这样做时,我有代码在用户点击OK 之前设置初始地图视图和其他基于位置的变量.
我发现我可以在等待用户更改位置管理器的权限的while循环之后放置这些启动步骤,但这不可能是最好的做法,更不用说它会导致一些奇怪的行为启动画面和地图:
BOOL firstrun = TRUE;
while ([[locationManager class] authorizationStatus] == kCLAuthorizationStatusDenied || [[locationManager class] authorizationStatus] == kCLAuthorizationStatusNotDetermined) {
NSLog(@"Waiting for location permission");
}
...initiation code...
Run Code Online (Sandbox Code Playgroud)
警报框是否有"位置访问权限"监听器或者我不知道的位置管理器委托中的类似功能?我在文档中看不到这样的方法.谁知道最好的做法是什么?非常感谢.
编辑 我开始我的位置跟踪如下:
if (nil == locationManager)
locationManager = [[CLLocationManager alloc] init];
[locationManager startMonitoringSignificantLocationChanges];
self.musicmap.delegate = self;
[self.mymap setShowsUserLocation:true];
Run Code Online (Sandbox Code Playgroud)
谢谢
我创建了一个基本的网络应用程序,如果它不处于独立模式(即不在您的主屏幕上),它会弹出一个小“单击此处添加到主屏幕”。我有一个基本的注册系统,通过电子邮件向用户发送指向应用程序的链接,但现在注意到,如果他们从 iOS Gmail 应用程序打开链接,带有选项菜单的底部栏不会出现,但弹出窗口仍然会出现。
我是否可以提取任何设备、浏览器或导航器属性来检测我是否在 Gmail 应用程序中而不是在 Mobile Safari 浏览器应用程序本身中?谢谢。