当前位置: 首页 > news >正文

教做饮品的网站小程序定制开发app

教做饮品的网站,小程序定制开发app,校园引流推广方法,网站开发 ssh 菜鸟一、问题背景#xff1a; 应用在强提醒场景下#xff0c;一般会有马达振动的效果#xff0c;提示用户注意力的关注。 比如消息提醒#xff0c;扫码提示#xff0c;删除键确认提示等。 针对高定制化或者固定的振动方式#xff0c;我们需要有不同的方案实现#xff0c;马…一、问题背景 应用在强提醒场景下一般会有马达振动的效果提示用户注意力的关注。 比如消息提醒扫码提示删除键确认提示等。 针对高定制化或者固定的振动方式我们需要有不同的方案实现马达振动效果。 二、解决方案 鸿蒙针对振动效果的实现有多种方案目前分为振动和音振协同两种方式。 单纯的只是振动又分为三种方式 系统定制的振动方式例如闹钟非系统定制自定义振动配置json文件的方式线性马达振动只需要设置时间和强度最简单的调用方式 音振协同一般用于音效播放和振动同时的场景例如扫码。 1.首先需要配置振动权限该权限是系统权限只需要配置后默认就会被授权。 ohos.permission.VIBRATE 2.之后根据需要实现不同的马达振动效果方案调用详情参见下方代码示例的注释。 三、DEMO示例 import vibrator from ohos.vibrator; import { BusinessError } from ohos.base; import { resourceManager } from kit.LocalizationKit;/*** 振动管理类* 需要权限 ohos.permission.VIBRATE*/ export class HapticMgr {private TAG: string HapticMgr;private static mHapticMgr: HapticMgr | undefined undefined;public static Ins(): HapticMgr{if(!HapticMgr.mHapticMgr){HapticMgr.mHapticMgr new HapticMgr();}return HapticMgr.mHapticMgr;}/*** 按照指定持续时间触发马达振动*/public timeVibration(){try {// 触发马达振动vibrator.startVibration({type: time,duration: 1000,}, {id: 0,usage: alarm}, (error: BusinessError) {if (error) {console.error(Failed to start vibration. Code: ${error.code}, message: ${error.message});return;}console.info(Succeed in starting vibration);});} catch (err) {let e: BusinessError err as BusinessError;console.error(An unexpected error occurred. Code: ${e.code}, message: ${e.message});}}/*** 按照预置振动效果触发马达振动可先查询振动效果是否被支持再调用振动接口*/public typeVibration(){try {// 查询是否支持haptic.clock.timervibrator.isSupportEffect(haptic.clock.timer, (err: BusinessError, state: boolean) {if (err) {console.error(Failed to query effect. Code: ${err.code}, message: ${err.message});return;}console.info(Succeed in querying effect);if (state) {try {// 触发马达振动vibrator.startVibration({type: preset,effectId: haptic.clock.timer,count: 1,}, {usage: unknown}, (error: BusinessError) {if (error) {console.error(Failed to start vibration. Code: ${error.code}, message: ${error.message});} else {console.info(Succeed in starting vibration);}});} catch (error) {let e: BusinessError error as BusinessError;console.error(An unexpected error occurred. Code: ${e.code}, message: ${e.message});}}})} catch (error) {let e: BusinessError error as BusinessError;console.error(An unexpected error occurred. Code: ${e.code}, message: ${e.message});}}public fileVibration(){const fileName: string vibration.json;// 获取文件资源描述符let rawFd: resourceManager.RawFileDescriptor getContext().resourceManager.getRawFdSync(fileName);// 触发马达振动try {vibrator.startVibration({type: file,hapticFd: { fd: rawFd.fd, offset: rawFd.offset, length: rawFd.length }}, {id: 0,usage: alarm}, (error: BusinessError) {if (error) {console.error(Failed to start vibration. Code: ${error.code}, message: ${error.message});return;}console.info(Succeed in starting vibration);});} catch (err) {let e: BusinessError err as BusinessError;console.error(An unexpected error occurred. Code: ${e.code}, message: ${e.message});}// 关闭文件资源描述符getContext().resourceManager.closeRawFdSync(fileName);}/*** 按照指定模式停止对应的马达振动自定义振动不支持此类停止方式*/public stopVibrationByType(){// 停止固定时长振动try {// 按照VIBRATOR_STOP_MODE_TIME模式停止振动vibrator.stopVibration(vibrator.VibratorStopMode.VIBRATOR_STOP_MODE_TIME, (error: BusinessError) {if (error) {console.error(Failed to stop vibration. Code: ${error.code}, message: ${error.message});return;}console.info(Succeed in stopping vibration);})} catch (err) {let e: BusinessError err as BusinessError;console.error(An unexpected error occurred. Code: ${e.code}, message: ${e.message});}// 停止预置振动try {// 按照VIBRATOR_STOP_MODE_PRESET模式停止振动vibrator.stopVibration(vibrator.VibratorStopMode.VIBRATOR_STOP_MODE_PRESET, (error: BusinessError) {if (error) {console.error(Failed to stop vibration. Code: ${error.code}, message: ${error.message});return;}console.info(Succeed in stopping vibration);})} catch (err) {let e: BusinessError err as BusinessError;console.error(An unexpected error occurred. Code: ${e.code}, message: ${e.message});}}/*** 停止所有模式的马达振动包括自定义振动*/public stopVibration(){try {// 停止所有模式的马达振动vibrator.stopVibration((error: BusinessError) {if (error) {console.error(Failed to stop vibration. Code: ${error.code}, message: ${error.message});return;}console.info(Succeed in stopping vibration);})} catch (error) {let e: BusinessError error as BusinessError;console.error(An unexpected error occurred. Code: ${e.code}, message: ${e.message});}}}振动配置文件 {MetaData: {Create: 2023-01-09,Description: a haptic case,Version: 1.0,ChannelNumber: 1},Channels: [{Parameters: {Index: 0},Pattern: [{Event: {Type: transient,StartTime: 0,Parameters: {Frequency: 31,Intensity: 100}}},{Event: {Type: continuous,StartTime: 40,Duration: 54,Parameters: {Frequency: 30,Intensity: 38,Curve: [{Time: 0,Frequency: 0,Intensity: 0},{Time: 1,Frequency: 15,Intensity: 0.5},{Time: 40,Frequency: -8,Intensity: 1.0},{Time: 54,Frequency: 0,Intensity: 0}]}}}]}] }
http://www.dnsts.com.cn/news/223172.html

相关文章:

  • 如何查看网站服务器类型0716网站建设
  • 做网站造假云南建设招标网站
  • 电影网站内页专业装修设计网站
  • 展示网站方案个人网站系统
  • 家用电脑和宽带做网站个性化的个人网站简易
  • 苏州制作企业网站的外贸企业网站推广公司
  • 庄行网站建设关键字优化用什么系统
  • 免费建立自己的网站空间西安搬家公司电话号码
  • 个人网站是请人做还是自己编写好企业网站设计开发
  • 广州做服装电商拿货的网站郑州集团网站建设哪家好
  • 成都做企业网站浙江交工宏途交通建设有限公司网站
  • 高新门户网站专题建设如何防止网站挂马
  • 丹东企业网站建设平台黄页88网在线
  • 网站群建设分析做网站有哪些
  • 企业宣传网站方案做网站书籍
  • 绍兴专业做网站网站网格设计
  • 厦门小羽佳网站建设开发如何创建网站的步骤
  • 手机电脑网站建设短视频可以免费注册的网站
  • 万户网站协作管理系统网站开发旅游前台模板
  • 网站内容维护合同wordpress网站慢
  • 怎样建设一个自己的网站微商越秀移动网站建设
  • 网站iis安全配置南京建设网站哪家好
  • 百度推广网站建设费企业门户网站什么意思
  • 如何利用源码做网站网站建设简单个人主页
  • 网站如何做攻击防护网站系统找不到指定的文件
  • 济南企业型网站做服装设计兼职的网站
  • 搭建网站论坛网页制作要学什么课程
  • 旅游网站建设的方法网站后台有些不显示
  • 蕲春县住房和城乡建设局网站溧水做网站价格
  • 如何自己制作自己的网站网络设计课程有哪些