iOS10 Today Widget - 如何判断iPhone是否被锁定?

时间:2016-09-18 14:50:37

标签: ios iphone ios10-today-widget

我正在向现有的iOS应用添加小部件。上周发布了iOS10,并为App Extensions添加了一些新功能,以及今日小部件。

Apple有一些小部件,例如"活动小部件"如果您使用Apple Watch在小组件视图中显示您的活动。此小部件仅在iPhone解锁时才有效。如果它被锁定,它会显示一条消息,例如"解锁以显示活动数据"或类似的东西。如何检查用户的手机是否已锁定?

我想显示来自HealthKit的一些信息,只要iPhone被锁定,这是不可能的,因为Apple在这种情况下限制了对健康数据的访问。如果我解锁我的iPhone,一切都按预期工作。如果我在锁定屏幕上,它不会更新,因为访问受限制。

Apple今天的小部件文档非常好,但根据我的问题,我无法找到任何内容。

这是iPhone锁定时小部件的样子:

enter image description here

当iPhone un 锁定时,小部件的外观如下:

enter image description here

2 个答案:

答案 0 :(得分:0)

没有公开的方法来确定iPhone是否已解锁。但是,您可以使用UIApplication代表检查您的应用当前是否处于有效状态。

但你回答了自己的问题。 " 因为Apple限制访问"。

答案 1 :(得分:0)

确定设备是否被锁定的最佳方法是实施UIApplicationDelegate,这样您就可以覆盖方法applicationProtectedDataDidBecomeAvailableapplicationProtectedDataWillBecomeUnavailable

然后访问UIApplication.shared.isProtectedDataAvailable属性,您可以检查设备是否被锁定。