微信小程序排坑指南详解


Posted in Javascript onMay 23, 2018

本文为大家分享了微信小程序排坑指南,供大家参考,具体内容如下

no.1 背景图不显示

微信小程序里面是允许用户自定义背景图的,但是限定了背景图的路径及地址,之前一直用相对路径来写,微信开发者工具中也显示出了背景图,误以为没有问题,但是预览的时候发现手机中不显示背景图,这就是今天介绍的第一个坑,背景图不允许为本地图片。

解决方法:

第一、用在线图片转base64码的方法,这种方法的优点在于图片不存储在本地或者服务器上,占用空间小修改方便,缺点是小图片处理效果更好,大图代码相当的长,长的都不想看他...

第二、将图片上传至服务器,引用图片地址就可以了,方便快捷,不过修改麻烦且占用服务器空间。

no.2 下拉没有触发onPullDownRefresh

//下拉事件
onPullDownRefresh: function() {
 console.log("好用不?")
 wx.showToast({
  title: '没事儿别乱拉',
  icon: 'success',
  duration: 2000
 })
},
//上拉事件
onReachBottom: function() {
 wx.showToast({
  title: '没事儿别乱拽',
  icon: 'success',
  duration: 2000
 })
}

上面代码是完全没有问题的,但是预览了以后发现只有向上拽是好用的,下拉完全没有反应,这就郁闷了,难道官方的方法有问题?

其实不是的,原因是因为官方默认是关闭了下拉事件,只要去app.json文件里面修改windows里面参数就可以了,代码如下:

"window": {
 "enablePullDownRefresh":true //开启下拉功能
}

no.3 如何取消监听重力感应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;
 }
})

修改以后重新编译预览就达到我们想要的效果了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript之typeof、instanceof操作符使用探讨
May 19 Javascript
jQuery蓝色风格滑动导航栏代码分享
Aug 19 Javascript
js代码实现无缝滚动(文字和图片)
Aug 20 Javascript
jQuery实现鼠标选文字发新浪微博的方法
Apr 02 Javascript
详解Vue 动态添加模板的几种方法
Apr 25 Javascript
简单实现js进度条加载效果
Mar 25 Javascript
vue iview实现动态路由和权限验证功能
Apr 17 Javascript
layer.confirm点击第一个按钮关闭弹出框的方法
Sep 09 Javascript
JS代码触发事件代码实例
Jan 02 Javascript
javascript实现画板功能
Apr 12 Javascript
Javascript原型链及instanceof原理详解
May 25 Javascript
Vue 解决通过this.$refs来获取DOM或者组件报错问题
Jul 28 Javascript
关于vue-router的那些事儿
May 23 #Javascript
基于Vue自定义指令实现按钮级权限控制思路详解
May 23 #Javascript
详解React+Koa实现服务端渲染(SSR)
May 23 #Javascript
JavaScript+H5实现微信摇一摇功能
May 23 #Javascript
浅谈使用mpvue开发小程序需要注意和了解的知识点
May 23 #Javascript
vue动态路由配置及路由传参的方式
May 23 #Javascript
vue-cli项目根据线上环境分别打出测试包和生产包
May 23 #Javascript
You might like
php 发送带附件邮件示例
2014/01/23 PHP
PHP中单例模式与工厂模式详解
2017/02/17 PHP
PHP插件PHPMailer发送邮件功能
2017/02/28 PHP
Laravel学习教程之IOC容器的介绍与用例
2017/08/15 PHP
php对象工厂类完整示例
2018/08/09 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
2020/12/10 PHP
弹出广告特效(一个IP只弹出一次)的代码
2007/07/27 Javascript
Knockoutjs快速入门(经典)
2012/12/24 Javascript
javascript的日期对象、数组对象、二维数组使用说明
2014/12/22 Javascript
js实现屏幕自适应局部代码分享
2015/01/30 Javascript
JavaScript使用push方法添加一个元素到数组末尾用法实例
2015/04/06 Javascript
javascript实现的简单计时器
2015/07/19 Javascript
Angularjs material 实现搜索框功能
2016/03/08 Javascript
jQuery图片渐变特效的简单实现
2016/06/25 Javascript
详解Javascript中的原型OOP
2016/10/12 Javascript
vue-resourse将json数据输出实例
2017/03/08 Javascript
详解nodejs微信公众号开发——3.封装消息响应模块
2017/04/10 NodeJs
addeventlistener监听scroll跟touch(实例讲解)
2017/08/04 Javascript
详解VUE中常用的几种import(模块、文件)引入方式
2018/07/03 Javascript
利用JavaScript的Map提升性能的方法详解
2019/08/14 Javascript
vue实现在v-html的html字符串中绑定事件
2019/10/28 Javascript
Vue实现手机扫描二维码预览页面效果
2020/05/28 Javascript
详解Python中表达式i += x与i = i + x是否等价
2017/02/08 Python
利用Python函数实现一个万历表完整示例
2021/01/23 Python
可以随进度显示不同颜色的css3进度条分享
2014/04/11 HTML / CSS
100%植物性、有机、即食餐:Sakara Life
2018/10/25 全球购物
美津浓巴西官方网站:Mizuno巴西
2019/07/24 全球购物
adidas马来西亚官网:adidas MY
2020/09/12 全球购物
婚礼主持词
2014/03/13 职场文书
简单租房协议书
2014/04/09 职场文书
村党支部公开承诺书
2014/05/29 职场文书
就业意向书
2014/07/29 职场文书
医德医魂心得体会
2014/09/11 职场文书
2015年中个人总结范文
2015/03/10 职场文书
学生会招新宣传语
2015/07/13 职场文书
.Net Core导入千万级数据至Mysql的步骤
2021/05/24 MySQL