当前位置:首页 > VUE

vue实现手机震动

2026-01-18 02:14:43VUE

Vue 中实现手机震动的方法

在 Vue 项目中可以通过调用浏览器的 Vibration API 实现手机震动功能。以下是具体实现方式:

检测浏览器支持性

在调用震动功能前需检查浏览器是否支持该 API:

const isVibrationSupported = 'vibrate' in navigator;

基本震动实现

调用 navigator.vibrate() 方法触发震动,参数为毫秒数或震动模式数组:

// 单次震动 200ms
navigator.vibrate(200);

// 震动模式:震动200ms,暂停100ms,再震动300ms
navigator.vibrate([200, 100, 300]);

Vue 组件封装示例

<template>
  <button @click="vibrate">点击震动</button>
</template>

<script>
export default {
  methods: {
    vibrate() {
      if (!navigator.vibrate) {
        alert('您的设备不支持震动功能');
        return;
      }

      // 震动模式:短-长-短
      navigator.vibrate([100, 50, 200]);
    }
  }
}
</script>

停止震动

可以通过传递 0 或空数组停止当前震动:

navigator.vibrate(0);
// 或
navigator.vibrate([]);

注意事项

  1. 该 API 需要用户先与页面交互(如点击按钮)后才能触发
  2. iOS 设备普遍不支持此 API
  3. 长时间震动可能被浏览器限制
  4. 建议将震动功能包装在用户交互事件处理器中

兼容性处理

对于不支持原生震动的设备,可以尝试以下 fallback 方案:

function safeVibrate(pattern) {
  if (navigator.vibrate) {
    navigator.vibrate(pattern);
  } else {
    console.warn('Vibration not supported');
    // 可以在此处添加替代反馈,如声音提示
  }
}

响应式封装示例

<template>
  <button @click="triggerVibration">震动反馈</button>
</template>

<script>
export default {
  data() {
    return {
      isSupported: false
    }
  },
  mounted() {
    this.isSupported = 'vibrate' in navigator;
  },
  methods: {
    triggerVibration() {
      if (this.isSupported) {
        navigator.vibrate([30, 50, 30]);
      }
    }
  }
}
</script>

vue实现手机震动

标签: 手机vue
分享给朋友:

相关文章

vue实现文档分享

vue实现文档分享

Vue 实现文档分享功能 文档分享功能通常涉及文件上传、存储、生成分享链接以及权限控制等模块。以下是基于 Vue 的实现方案: 文件上传组件 使用 element-ui 或 ant-design-…

vue如何实现注册

vue如何实现注册

实现用户注册功能 在Vue中实现注册功能通常需要结合前端表单和后端API交互。以下是完整的实现方案: 创建注册表单组件 注册表单需要包含用户名、邮箱、密码等基本字段,并进行表单验证: <te…

vue卖座网实现

vue卖座网实现

Vue 卖座网实现 项目结构搭建 使用 Vue CLI 快速初始化项目,安装必要依赖如 Vue Router、Vuex、Axios。 创建核心目录结构:components(通用组件)、views(页…

vue登录逻辑的实现

vue登录逻辑的实现

Vue 登录逻辑实现 前端实现 创建登录组件 在 Vue 项目中创建一个登录组件,通常命名为 Login.vue。该组件包含表单元素,如用户名和密码输入框,以及提交按钮。 <template…

vue实现收起展开面板

vue实现收起展开面板

实现收起展开面板的方法 在Vue中实现收起展开面板功能可以通过多种方式完成,以下是几种常见的实现方法: 使用v-show或v-if控制显示隐藏 利用Vue的指令可以轻松实现面板的展开和收起:…

vue路由实现内部切换

vue路由实现内部切换

Vue 路由实现内部切换的方法 Vue Router 是 Vue.js 官方的路由管理器,用于实现单页应用(SPA)的页面切换。以下是几种常见的内部路由切换方式: 使用 <router-lin…