我正在向现有的iOS应用添加小部件。上周发布了iOS10,并为App Extensions添加了一些新功能,以及今日小部件。
Apple有一些小部件,例如"活动小部件"如果您使用Apple Watch在小组件视图中显示您的活动。此小部件仅在iPhone解锁时才有效。如果它被锁定,它会显示一条消息,例如"解锁以显示活动数据"或类似的东西。如何检查用户的手机是否已锁定?
我想显示来自HealthKit的一些信息,只要iPhone被锁定,这是不可能的,因为Apple在这种情况下限制了对健康数据的访问。如果我解锁我的iPhone,一切都按预期工作。如果我在锁定屏幕上,它不会更新,因为访问受限制。
Apple今天的小部件文档非常好,但根据我的问题,我无法找到任何内容。
这是iPhone锁定时小部件的样子:
当iPhone un 锁定时,小部件的外观如下:
答案 0 :(得分:0)
没有公开的方法来确定iPhone是否已解锁。但是,您可以使用UIApplication
代表检查您的应用当前是否处于有效状态。
但你回答了自己的问题。 " 因为Apple限制访问"。
答案 1 :(得分:0)
确定设备是否被锁定的最佳方法是实施UIApplicationDelegate
,这样您就可以覆盖方法applicationProtectedDataDidBecomeAvailable
和applicationProtectedDataWillBecomeUnavailable
然后访问UIApplication.shared.isProtectedDataAvailable
属性,您可以检查设备是否被锁定。