我的iOS应用程序(确切地说是iOS)显示一个弹出窗口,要求允许在第一次启动时使用用户的位置 - “”“想要使用当前位置”,并带有两个按钮“不允许”和“好”。 我试过了: SLAlert * locationAlert = [SLAlert alertWithTitle:@“\”\“想要使用您当前的位置”]; SLAlertHandler * okHandler = [locationAlert dismissWithButtonTitled:@“OK”]; [SLAlertHandler addHandler:okHandler]; 但是乐器说“无法启动脚本,目标应用程序不是最重要的。”
那么如何用潜意识来解雇这个弹出窗口?感谢。
答案 0 :(得分:0)
Subliminal的警报处理系统直到您的测试开始运行之前才会加载,所以如果您在启动时显示该警报(例如,application:didFinishLaunchingWithOptions:
),则Subliminal将无法通过以下方式处理警报:它出现的时间。
有几种方法可以解决这个问题。在运行集成测试时,您只需添加延迟即可获取用户的当前位置。类似的东西:
_manager = [[CLLocationManager alloc] init];
#if INTEGRATION_TESTING
double delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[_manager startUpdatingLocation];
});
#else
[_manager startUpdatingLocation];
#endif
或者您可以注册app-hook来触发获取用户的当前位置,在测试期间调用该挂钩。如果您使用app钩子来触发获取用户的位置,那么Subliminal的警报处理系统肯定会在任何测试调用该钩子时加载。