当我想让 iPhone 振动时,如何确定是使用UIFeedbackGenerator
还是AudioServicesPlaySystemSound
?
新的触觉引擎仅在 iOS10 和 iPhone 7 机型上可用,那么我们如何编写代码,在支持时使用这个新引擎,但在不支持时回退到使用不那么酷AudioServicesPlaySystemSound(kSystemSoundID_Vibrate)
?
苹果说不用担心,UIFeedbackGenerator
如果不支持它根本不会做任何事情,但是如果我仍然希望它振动,我看不出这对我有什么帮助,因为它的方法没有任何类型的成功回调。
请注意,调用这些方法不会直接播放触觉。相反,它会将事件通知系统。然后系统根据设备、应用程序的状态、剩余电池电量和其他因素确定是否播放触觉。
例如,目前仅播放触觉反馈:
在支持 Taptic Engine 的设备上(iPhone 7 和 iPhone 7 Plus)。
当应用程序在前台运行时。
启用系统触觉设置时。
作为一般规则,信任系统来确定它是否应该播放反馈。不要检查设备类型或应用状态来有条件地触发反馈。在您决定如何使用反馈后,请始终在适当的事件发生时触发它。系统会忽略它无法满足的任何请求。