在我的应用程序首次启动时,我收到一个权限警报,询问我是否允许该应用程序使用我当前的位置.我的onAlert方法成功解除了我设备上的警报.当我在模拟器上运行它时,它永远不会被调用.其他内部警报由模拟器上的onAlert方法处理.来自
SpringBoard的权限警报不在模拟器上处理.有任何想法吗?
UIATarget.onAlert = function onAlert(alert) { var title = alert.name(); UIALogger.logMessage(title); return false; }
解决方法
出现此问题是因为您看到的警报来自系统本身 – 在应用程序实际启动之前,您的自动化环境已初始化.
要查看这种情况,请在UIATarget.onAlert的函数定义之前添加调试行:
UIALogger.logDebug("Now setting up the alert function"); UIATarget.onAlert = function onAlert(alert) {}
接下来,在您的模拟器上重置内容和设置…并重新运行您的自动化.您应该注意到,在手动关闭有关使用当前位置的警报之后,调试行才会出现.
我不知道如何从javascript代码中解决这个问题.您必须延迟警报,直到应用程序正确启动,或遵循example shown in this answer.