美文网首页
Taptic-Engine 微震动

Taptic-Engine 微震动

作者: RocketsChen | 来源:发表于2017-10-12 15:15 被阅读499次

体验过Apple Watch 的小伙伴肯定知道,很多操作产生微震动(短震)是一个非常好的用户体验,所以就想是否能用到手机上。答案是肯定的,而且很多优秀的APP已经拥有类似的体验。

谷歌,百度下来发现关于Taptic-Engine文档少的可怜🤕,不过还是找到一篇很好的参考博客:iOS——关于-Taptic-Engine-震动反馈

Taptic-Engine是什么?

Taptic Engine 是苹果推出的全新震动模块,目前支持Apple Watch,iPhone 6s以上的手机。

Taptic-Engine调用

  • 导入 #import <AudioToolbox/AudioToolbox.h>
  • 调用长震

    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
    __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_2_0); (版本)

  • 调用普通短震,3D Touch 中 Peek 震动触感

    AudioServicesPlaySystemSound(1519);

  • 调用普通短震,3D Touch 按压弹出触感

    AudioServicesPlaySystemSound(1520);

  • 调用三次短震

    AudioServicesPlaySystemSound(1521);

但以上方法均未在 Apple 的 Documents 中描述。显然,这是调用了一些私有API 。

iOS10 引入了一种新的、产生触觉反馈的方式, UIImpactFeedbackGenerator:用来给用户反馈当UI元素之间发生产生影响 。Apple 对于 UIImpactFeedbackGenerato 有一篇介绍文档UIFeedbackGenerator 可以帮助你实现 haptic feedback。它的要求是:支持 Taptic Engine 机型 (iPhone 7 以及 iPhone 7 Plus).app 需要在前台运行系统 Haptics setting 需要开启。

   UIKIT_CLASS_AVAILABLE_IOS_ONLY(10_0)

    if (@available(iOS 10.0, *)) {
        UIImpactFeedbackGenerator *generator = [[UIImpactFeedbackGenerator alloc] initWithStyle: UIImpactFeedbackStyleHeavy];
        [generator prepare];
        [generator impactOccurred];
    }

UIImpactFeedbackGenerator提供了三种Style:LightMediumHeavy

typedef NS_ENUM(NSInteger, UIImpactFeedbackStyle) {
    UIImpactFeedbackStyleLight,
    UIImpactFeedbackStyleMedium,
    UIImpactFeedbackStyleHeavy
};

总结一下,希望同样的代码能在更多的机型上实现短振,建议使用 AudioServicesPlaySystemSound(1519)。不过可能会涉及到调用私有 API。安全起见,希望使用 UIImpactFeedbackGenerator。

在这里对Taptic-Engine只做简单的使用介绍,如若想更为详细的了解,请前去文中博客地址查看。

博客地址

相关文章

  • Taptic-Engine 微震动

    体验过Apple Watch 的小伙伴肯定知道,很多操作产生微震动(短震)是一个非常好的用户体验,所以就想是否能用...

  • iOS中关于Taptic-Engine震动反馈的深入解析

    前言 TapticEngine是什么总的来说,TapticEngine是苹果产品上推出的全新震动模块名称,最早出现...

  • VOIP 实现微信长震动+铃声

    实现微信长震动只能在Xcode10版本中实现. 在新版本Xcode11上至于后台或杀死报错, 报错reason: ...

  • 系统震动or震动反馈

    一.系统震动 1.AudioServicesPlaySystemSound() 系统震动是在iOS10.0之前存在...

  • 震动

    引入头文件: #import "AudioToolbox/AudioToolbox.h" 调用函数: AudioS...

  • 震动

    忽然被带来的坏情绪。 我不擅长处理人际关系。如果关系只是表面有裂隙,那凑合着还过得去。不过是打着马虎眼地嘻嘻哈哈就...

  • 震动

    生活总是充满了意外,让人猝不及防,很多时候,并不是努力就可以的。比如学习,努力不一定能取的高分,比如工作,拼尽全力...

  • 震动

    我怀着一个虚假的肚子,走在人间的道路上,精神状态似乎不是太好,走起来就摇摇晃晃的,上下跌跌撞撞的。 在无意之间,点...

  • 震动

    轻轻敲响 一只钟 天下庙宇为之震动

  • 震动

    昨天和前同事闲聊,她说她家孩子成绩不太好,后来慢慢聊才得知,他们班上有两个娃儿成绩相当好,反应能力很快,全年级一二...

网友评论

      本文标题:Taptic-Engine 微震动

      本文链接:https://www.haomeiwen.com/subject/tcjgyxtx.html