iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >微信小程序怎样开发摇一摇功能
  • 924
分享到

微信小程序怎样开发摇一摇功能

2024-04-02 19:04:59 924人浏览 八月长安
摘要

这篇文章给大家分享的是有关微信小程序怎样开发摇一摇功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。微信小程序摇一摇方法定义: let shakeInfo&n

这篇文章给大家分享的是有关微信小程序怎样开发摇一摇功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

微信小程序摇一摇

方法定义: 

let shakeInfo = {
 openFlag: false,// 是否开启摇一摇,*****注意:如果是小程序全局监听摇一摇,这里默认为true
 shakeSpeed: 110,//设置阈值,越小越灵敏
 shakeStep: 2000,//摇一摇成功后间隔
 lastTime: 0,//此变量用来记录上次摇动的时间
 x: 0,
 y: 0,
 z: 0,
 lastX: 0,
 lastY: 0,
 lastZ: 0, //此组变量分别记录对应 x、y、z 三轴的数值和上次的数值
};
function openShakeEvent() {
 shakeInfo.openFlag = true;
}
function closeShakeEvent() {
 shakeInfo.openFlag = false;
}
function shakeOk() {
 closeShakeEvent();
 setTimeout(function () {
  openShakeEvent();
 }, shakeInfo.shakeStep);
}

function shake(acceleration, successCallback) {
 if (!shakeInfo.openFlag) {
  return;
 }
 var nowTime = new Date().getTime(); //记录当前时间
 //如果这次摇的时间距离上次摇的时间有一定间隔 才执行
 if (nowTime - shakeInfo.lastTime > 100) {
  var diffTime = nowTime - shakeInfo.lastTime; //记录时间段
  shakeInfo.lastTime = nowTime; //记录本次摇动时间,为下次计算摇动时间做准备
  shakeInfo.x = acceleration.x; //获取 x 轴数值,x 轴为垂直于北轴,向东为正
  shakeInfo.y = acceleration.y; //获取 y 轴数值,y 轴向正北为正
  shakeInfo.z = acceleration.z; //获取 z 轴数值,z 轴垂直于地面,向上为正
  //计算 公式的意思是 单位时间内运动的路程,即为我们想要的速度
  var speed = Math.abs(shakeInfo.x + shakeInfo.y + shakeInfo.z - shakeInfo.lastX - shakeInfo.lastY - shakeInfo.lastZ) / diffTime * 10000;
  //console.log(speed)
  if (speed > shakeInfo.shakeSpeed) { //如果计算出来的速度超过了阈值,那么就算作用户成功摇一摇
   successCallback();
  }
  shakeInfo.lastX = shakeInfo.x; //赋值,为下一次计算做准备
  shakeInfo.lastY = shakeInfo.y; //赋值,为下一次计算做准备
  shakeInfo.lastZ = shakeInfo.z; //赋值,为下一次计算做准备
 }
}

方法调用,在小程序启动首页页面onLoad添加如下代码:

 
 onLoad: function(options) {
  //
  wx.onAccelerometerChange(function(acceleration) {
   Main.shake(acceleration, function() {
    Main.shakeOk();
    Main.openBarCodeDlg(); // 在这里调用摇一摇成功后执行的代码
   });
  });
 }

如果是小程序全局都监听摇一摇,以上代码就可以实现,如果只是配置指定某几个页面监听,则需要在监听的页面做以下code:

onShow: function() {
 Main.openShakeEvent();
},
onHide: function() {
 Main.closeShakeEvent();
}

这样在跳转到非监听页面时就不会执行你的代码了

补充:下面看下微信小程序 实现摇一摇重力感应API

微信小程序并没有提供摇一摇api接口,但是提供了一个重力感应的API 「wx.onAccelerometerChange(CALLBACK)」,我们可以用这个方法来模拟微信摇一摇功能,代码如下:

Page({
  onShow: function () {
    wx.onAccelerometerChange(function (e) {
      console.log(e.x)
      console.log(e.y)
      console.log(e.z)
      if (e.x > 1 && e.y > 1) {
        wx.showToast({
          title: '摇一摇成功',
          icon: 'success',
          duration: 2000
        })
      }
    })
  },
  onHide: function(){
    
  }
})

但如果小程序需要启用tabbar的话,这样启用重力感应API会使tabbar下面所有页面都会监听到重力感应数据,导致模拟摇一摇在所有页面都能出现摇一摇的结果,这并不是我们想要的,我们只是想在tabbar下其中一个页面允许他获取到重力感应数据,那么就需要我们自己加入一个是否在当前页面的判断,根据判断结果来启用监听重力感应API,代码修改如下:

Page({
  isshow: false,
  onShow: function () {
    var that = this;
    this.isShow = true;
    wx.onAccelerometerChange(function (e) {
      if(!that.isShow){
        return
      }
      console.log(e.x)
      console.log(e.y)
      console.log(e.z)
      if (e.x > 1 && e.y > 1) {
        wx.showToast({
          title: '摇一摇成功',
          icon: 'success',
          duration: 2000
        })
      }
    })
  },
  onHide: function(){
    this.isShow = false;
  }
})

感谢各位的阅读!关于“微信小程序怎样开发摇一摇功能”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: 微信小程序怎样开发摇一摇功能

本文链接: https://www.lsjlt.com/news/70254.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 微信小程序怎样开发摇一摇功能
    这篇文章给大家分享的是有关微信小程序怎样开发摇一摇功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。微信小程序摇一摇方法定义: let shakeInfo&n...
    99+
    2022-10-19
  • 微信小程序如何实现摇一摇
    这篇文章将为大家详细讲解有关微信小程序如何实现摇一摇,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。微信小程序目录为了更好的理解小程序和小程序开发,我们首先来看一下项目的目...
    99+
    2022-10-19
  • 摇一摇小程序系统如何开发
    这篇文章主要介绍“摇一摇小程序系统如何开发”,在日常操作中,相信很多人在摇一摇小程序系统如何开发问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”摇一摇小程序系统如何开发”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-26
  • 怎么用html5的DeviceOrientation实现微信摇一摇功能
    这篇“怎么用html5的DeviceOrientation实现微信摇一摇功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有...
    99+
    2022-10-19
  • 微信小程序开发之实现摇色子游戏
    目录一、项目展示二、核心代码三、效果图一、项目展示 摇色子是一款简易的游戏类小程序 用户可以投出1-9个色子 二、核心代码 dice.wxml <!--pages/dice/...
    99+
    2023-01-28
    微信小程序摇色子游戏 小程序摇色子游戏 小程序游戏
  • 怎样开发微信小程序
    小编给大家分享一下怎样开发微信小程序,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!微信小程序 开发经验整理前言:最近小程序出来了...
    99+
    2022-10-19
  • 微信小程序如何开发微信支付功能
    本篇内容主要讲解“微信小程序如何开发微信支付功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序如何开发微信支付功能”吧!用户请求开发者后台,发起下单请求发起请求前在小程序端调用&nbs...
    99+
    2023-06-26
  • 微信小程序开发常用功能汇总
    目录获取用户信息获取手机号添加分享功能静态分享带参分享全局分享分享按钮页面跳转自定义组件定义全局组件设置默认顶部导航栏样式取消顶部默认的导航栏获取用户信息 调用 wx.getUser...
    99+
    2022-11-13
  • uni-app 开发微信小程序定位功能
    目录一、注册账号二、创建应用和Key1.进入控制台2.创建应用3.创建Key三、登录微信公众平台后台四、下载微信小程序JavaScriptSDK五、代码实现六、一般获取经纬度地址七、...
    99+
    2022-11-13
  • 微信小程序怎样实现登录功能
    这篇文章主要介绍了微信小程序怎样实现登录功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。微信小程序登录一. 小程序不支持cookie会话 ...
    99+
    2022-10-19
  • 【微信开发】微信小程序实现实时聊天功能
    最近在做一个项目,需要运用到实时聊天功能,分享一下。      分为: 界面如何布局以及细节; 如何实现实时更新; 全部代码展示;         一、界面如何布局以及细节:         1.说到底,聊天界面就是循环一个数组,每一行...
    99+
    2023-09-02
    微信小程序 小程序
  • 使用PHP开发微信小程序预约功能
    随着微信小程序的飞速发展,很多企业或个人开发者都开始将重心转向小程序开发。其中,预约功能是许多企业或个人开发者不可或缺的一项功能。本篇文章将基于PHP语言来介绍开发微信小程序预约功能的实现方法。一、准备开发环境在开始开发之前,需要准备以下开...
    99+
    2023-05-14
    PHP 微信小程序 预约功能
  • 微信小程序如何开发朋友圈功能
    这篇“微信小程序如何开发朋友圈功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“微信小程序如何开发朋友圈功能”文章吧。一、开...
    99+
    2023-06-26
  • 微信小程序云开发实现搜索功能
    微信小程序云开发实现搜索功能,供大家参考,具体内容如下 微信小程序使用云开发实现搜索功能有两种情况,一种是简单的搜索用关键字来查询数据,另一种是模糊查询关于关键字的全部数据查询。废话...
    99+
    2022-11-13
  • 婚庆微信小程序开发要哪些功能
    这篇“婚庆微信小程序开发要哪些功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“婚庆微信小程序开发要哪些功能”文章吧。1、案...
    99+
    2023-06-27
  • 微信小程序购物车功能如何开发
    这篇“微信小程序购物车功能如何开发”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“微信小程序购物车功能如何开发”文章吧。ind...
    99+
    2023-06-26
  • 微信小程序云开发怎么实现搜索功能
    本篇内容介绍了“微信小程序云开发怎么实现搜索功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简单搜索功能实现WXML代码段<view...
    99+
    2023-06-30
  • 微信小程序开发文件上传功能怎么实现
    这篇文章主要介绍了微信小程序开发文件上传功能怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序开发文件上传功能怎么实现文章都会有所收获,下面我们一起来看看吧。保存图片,我认为有两处需要保存&nbs...
    99+
    2023-06-26
  • 开发菜谱类微信小程序有什么功能
    小编给大家分享一下开发菜谱类微信小程序有什么功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1.菜谱展示相比以往的话,每次想要制作不会的菜品就必须要到百度搜索中去查询相关菜谱,但是这就需要花费大量的时间来查询了,而菜谱小...
    99+
    2023-06-27
  • 微信斗图小程序开发需要什么功能
    这篇文章主要讲解了“微信斗图小程序开发需要什么功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微信斗图小程序开发需要什么功能”吧!  微信斗图小程序开发需要哪些功能  1、用户登录注册:对...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作