如何检测手表操作系统是不是关闭了 ios 应用程序 SWIFTUI

Posted

技术标签:

【中文标题】如何检测手表操作系统是不是关闭了 ios 应用程序 SWIFTUI【英文标题】:How can detect watch os is ios app closed SWIFTUI如何检测手表操作系统是否关闭了 ios 应用程序 SWIFTUI 【发布时间】:2020-04-02 13:07:35 【问题描述】:

如何在 ios 应用程序关闭时使用 watch os 进行检测?我使用 swift 和 watchConnectivity。

我也使用 swiftUI

【问题讨论】:

【参考方案1】:

在应用程序终止时

有这样的方法

applicationWillTerminate(_:)

*Dávid Pásztor 的注意事项 - 您只有 5 秒钟的时间将消息发送到手表,否则它将无法正常工作,因此请确保您发送到手表的消息小而快。

此方法将检测到应用程序正在关闭并将从内存中清除。然后,您可以添加一些连接来通知手表。

此处的文档: https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623111-applicationwillterminate


在应用程序移至后台

或者,如果您只想在应用程序进入后台时通知手表,也就是处于非活动状态,您可以使用此方法。

applicationWillResignActive(_ application: UIApplication)

此处的文档: https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1622950-applicationwillresignactive

【讨论】:

请注意,applicationWillTerminate 仅允许您的 iOS 应用程序运行 5 秒,这很可能不足以通过蓝牙与您的手表应用程序进行通信。 它不工作。我现在有一些应用程序解决了这个问题,但是如何解决?【参考方案2】:

如果你使用的是 SwiftUI

SceneDelegate.swift :

func sceneDidDisconnect(_ scene: UIScene) 
    sendMessageToWatch()
 

【讨论】:

以上是关于如何检测手表操作系统是不是关闭了 ios 应用程序 SWIFTUI的主要内容,如果未能解决你的问题,请参考以下文章

iOS:如何检测视图控制器是不是在弹出或关闭后出现

Android mic 的灵敏度足以听手表滴答声? [关闭]

从 iOS 应用检测用户的 watchOS 版本

如何检测 URL 是不是已粘贴/输入到 UITextView? Swift iOS [关闭]

有没有办法在 Android Wear Watch 上检测位置是不是关闭而不是不存在

手表靠近嘴巴时如何启动应用程序