情况:我正在开发一个管理HomeKit配件的应用程序。例如,我这样做:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="nav navbar-nav side-nav nicescroll-bar" style="overflow: hidden; width: auto; height: 100%;">
<li><a href="home">home</a></li>
<li><a href="dashboard">dashboard</a></li>
<li><a href="base">base</a></li>
<li><a href="test">test</a></li>
</ul>
方法中: HMAccessoryDelegate
工作正常,我可以处理附件的状态。
我将应用切换到后台模式。
我关闭了附件(我的意思是完全关闭了电源),所以它一定无法够到。
我将应用切换到前台模式,但仍可访问附件。
方法func accessoryDidUpdateReachability(HMAccessory)
-不被调用。
值func accessoryDidUpdateReachability(HMAccessory)
未更新。
我去前台时的代码示例:
accessory.isReachable
问题:当我从后台模式回到前台时,如何更新配件的isReachable值?
答案 0 :(得分:0)
您可以在ViewController中创建一个实现HMHomeManagerDelegate的函数:
func startHomeManager() {
manager = HMHomeManager()
manager.delegate = self
// do something here
}
,然后将对startHomeManager()
的调用添加到您的viewDidLoad()。这将刷新您的HMHome对象。然后在您的AppDelegate中调用此函数:
func applicationWillEnterForeground(_ application: UIApplication) {
viewController.startHomeManager()
viewController.didRestartHomeManager()
}
一个好处是,您可以致电startHomeManager()
进行刷新等操作。