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

濮阳做网站的电话理论网

濮阳做网站的电话,理论网,台州建设局网站,东莞网站建设企业最近使用uniapp开发震动功能,发现uniapp提供的 uni.vibrateLong()的方法震动比较弱,而且不支持息屏和后台震动。plus.ios.importClass("UIImpactFeedbackGenerator")是在网上看到的,这个震动也比较弱,ios也不支持息屏和…

最近使用uniapp开发震动功能,发现uniapp提供的 uni.vibrateLong()的方法震动比较弱,而且不支持息屏和后台震动。plus.ios.importClass("UIImpactFeedbackGenerator")是在网上看到的,这个震动也比较弱,ios也不支持息屏和后台震动。

这种方式不支持后台/息屏震动,屏幕一关闭或者软件退到桌面就会停止震动,而且震动也比较弱:

// 震动
let vibrateTimer = null;
const palyVibration = (interval = 1000) => {// 先停止可能存在的震动stopVibration();let platform = uni.getSystemInfoSync().platform;if (platform === "ios") {// iOS循环震动const doVibrate = () => {let UIImpactFeedbackGenerator = plus.ios.importClass("UIImpactFeedbackGenerator");let impact = new UIImpactFeedbackGenerator();impact.prepare();impact.init(1);impact.impactOccurred();};// 立即执行一次doVibrate();// 设置定时器循环执行vibrateTimer = setInterval(doVibrate, interval);}// Android循环震动if (platform === "android") {vibrateTimer = setInterval(() => {uni.vibrateLong();}, interval);}
}

上面的代码不支持后台/息屏震动(屏幕一但关闭或者软件退到桌面就会停止震动),而且震动也比较弱

最好的解决震动方法,代码如下:

uniapp 安卓和ios震动方法,支持息屏和后台震动,即使软件在退出桌面也能正常震动,安卓和ios均测试正常可用。

//震动
let platform = uni.getSystemInfoSync().platform;
let vibrateTimer = null;
const vibrate = (pattern = [0, 1500, 1000, 1500], type = 0) => {cancelVibrate();  // 先停止可能存在的震动try {if (platform === "ios") {plus.device.vibrate(pattern);const doVibrate = () => plus.device.vibrate(); // 循环执行震动doVibrate();  // 立即执行一次vibrateTimer = setInterval(doVibrate, 1000);  // 设置定时器循环执行} else {console.log('震动频率', pattern)var Build = plus.android.importClass("android.os.Build");if (Build.VERSION.SDK_INT >= 26) {var Context = plus.android.importClass("android.content.Context");var main = plus.android.runtimeMainActivity();var vibrateService = main.getSystemService(Context.VIBRATOR_SERVICE);var AudioAttributes = plus.android.importClass("android.media.AudioAttributes");var audioAttributesBuilder = new AudioAttributes.Builder();plus.android.invoke(audioAttributesBuilder, 'setContentType', AudioAttributes.CONTENT_TYPE_SONIFICATION);plus.android.invoke(audioAttributesBuilder, 'setUsage', AudioAttributes.USAGE_ALARM);var audioAttributes = plus.android.invoke(audioAttributesBuilder, 'build');// plus.android.invoke(vibrateService, 'vibrate', [0,1000], 0, audioAttributes);// plus.android.invoke(vibrateService, 'vibrate', [0,1500,1000,1500], 0, audioAttributes);plus.android.invoke(vibrateService, 'vibrate', pattern, type, audioAttributes);} else {// Android 低版本使用 plus.device.vibrate,无法实现自定义模式vibrateTimer = setInterval(() => plus.device.vibrate(), 1000);}}} catch (e) {console.log(JOSN.stringify(e));}
}//取消震动
const cancelVibrate = () => {if (vibrateTimer) {clearInterval(vibrateTimer);vibrateTimer = null;}if (platform === 'android') {var Build = plus.android.importClass("android.os.Build");if (Build.VERSION.SDK_INT >= 26) {var vib = plus.android.runtimeMainActivity().getSystemService("vibrator");plus.android.invoke(vib, "cancel");}}}

如果感兴趣,可以到我个人博客网站,查看更多教程:Yun博客

http://www.yayakq.cn/news/558834/

相关文章:

  • seo怎么优化软件seo关键词排名优化销售
  • 网站建设的五大原则手机微信小程序免费制作平台
  • 固阳网站建设广告公司简介模板及介绍
  • 网站推广优化排名公司设计师服务平台破解
  • 芦苞网站建设淘宝怎么优化关键词排名
  • 西安网站建设需要多少钱企业高端网站
  • 云凡济南网站建设开发厚街网站建设多少钱
  • 网站建设与推广协议书东莞市住房和城乡建设局门户网站
  • 兰州市建设工程招标投标中心网站海外网站服务器下载
  • 青海制作网站国家企业信用信息公示系统(广东)
  • 网站制作公司网站计算机网络实验 做网站的
  • 佛山手机建网站qq网页版 入口
  • 哪里有做ppt模板下载网站查网站关键词工具
  • 计算机网站建设方向5a景区网站建设
  • 泗阳住房建设局网站手机怎么制作游戏软件教程
  • 做网站需要多少带宽wordpress创建注册
  • 郑州金水区做网站公司自动做reference的网站
  • 恶意 镜像网站简述网站开发平台及常用工具
  • 深圳网站建设与网站制作佛山新网站建设怎么样
  • 莱芜网站快排0wordpress
  • 微商城网站建设上海建设摩托车官网
  • 17做网店网站池尾怎样创建网站直播接口
  • 怎么做锅炉网站贵阳网站建设制作方法
  • 上海自适应网站gui界面设计软件
  • 做性的网站网站80端口备案
  • 免费的旅游网站模板南沙规划建设局网站
  • 废橡胶网站建设黄骅港旅游景点大全海边
  • 一级a做爰片免费网站天天看抖音个人主页模板
  • 专业网站建设-好发信息网高端网站开发哪家专业
  • 免费入驻的网站设计平台网站建设文案模板