解决iOS首次启动app时,定位提示弹出框闪一下消失的情况。

来源:互联网 发布:日军退子弹 知乎 编辑:程序博客网 时间:2024/06/07 01:23

这几天由于项目整个框架大修改,遇到一个问题: 在真机上反复测试时,发现系统定位的授权提示框出现的时间有问题,并不是像我们期望的那样,当进入程序内部才弹出来,它出现的情况分以下几种:

  1. 进入app内部,弹出允许定位提示框(正常情况);
  2. 未进入app,弹出提示框(此时提示框不消失);
  3. 未进入app,弹出提示框,进入app后,弹出框消失。

后来调试发现,定位的入口写在appdelegate里面,首次进入app后,会模态出来一个欢迎页面,两者之间的执行顺序有影响。

解决办法:
1. 对于appdelegate里封装的定位入口,设置成公开方法;
2. 在模态出来的欢迎页面的viewDidLoad执行定位入口的方法;

[(AppDelegate *)[UIApplication sharedApplication].delegate configureAPIKey];

3.本以为这样子就ok了,但偶尔还是会出现上述bug,于是就让它延迟0.5s再执行:

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{        [SharedAppDelegate configureAPIKey];    });
0 0
原创粉丝点击