有没有办法找到手表应用程序是否在最前面(从iPhone或不在iPhone)?问题是当手表应用程序处于最前面状态时,它会访问两个
applicationWillResignActive()
和applicationDidEnterBackground()
extensionDelegate方法。
那么如何检查手表应用程序是否处于最前面状态?
答案 0 :(得分:0)
根据documentation of WKExtension,没有内置方法来检查应用是否是最前面的应用。即使WKApplicationState
枚举doesn't have也可以确定您的应用是否是最前面的应用。
此外,当应用程序成为最重要的应用程序时(当应用程序在前台运行时用户降低他们的手腕之后),应用程序会短暂进入后台模式,然后被设计暂停。因此,系统函数applicationWillResignActive()
和applicationDidEnterBackground()
被调用是预期的行为,因为应用程序实际上进入了后台模式。
在watchOS3
中,前台应用程序没有开发人员可以利用的好处,除了系统为前台应用程序自动恢复应用程序状态这一事实。
在watchOS 4中,最前面的应用程序具有以下额外优势:
performExpiringActivity(withReason:using:)
方法在后台完成任务时,接收增加的运行时优先级。答案 1 :(得分:0)
在iPhone上,您可以查看isReachable
WCSession
的值。
根据WCSession documentation,isReachable
在以下时间为真:
配对且活跃的Apple Watch在范围内,相应的 WatchKit扩展正在运行,而WatchKit扩展正在运行 isReachable属性为true。