微信小程序相关

98 阅读2分钟

1.wx:if 与 hidden

wx:if 与 hidden 都可以控制微信小程序中元素的显示与否。 他们的区别

  • wx:if 是遇 true 显示, 在隐藏的时候不渲染,
  • hidden 是遇 false 显示,在隐藏时仍然渲染,只是不呈现
<view  hidden="{{dialogue === true}}">
文字聊天
</view>
<view  hidden="{{dialogue === false}}">
语音聊天
</view>

因为 wx:if 之中的模板也可能包含数据绑定,所以当 wx:if 的条件值切换时,框架有一个局部渲染的过程,因为它会确保条件块在切换时销毁或重新渲染。

同时 wx:if 也是惰性的,如果在初始渲染条件为 false,框架什么也不做,在条件第一次变成真的时候才开始局部渲染。

相比之下,hidden 就简单的多,组件始终会被渲染,只是简单的控制显示与隐藏。

2.微信小程序禁止page页面上下滑动

在单页面设置disableScroll为true即可; 则页面整体不能上下滚动。只在页面配置中有效,无法在 app.json 中设置

{ "disableScroll": true}

微信小程序中禁止当前页面的上下滑动处理 在微信小程序中定义了一个半透明遮罩层,上面显示提示的文字; 但是这是一个长页面,遮罩出现的时候,页面依然可以上下滑动; 为了在遮罩出现的时候禁止用户滑动页面,如下处理:

<view catchtouchmove="preventTouchMove">    
    我是遮罩层
</view>
function preventTouchMove(){
    console.log('啥也不干就行,空函数');
}

3.微信小程序:封装全局的promise异步调用方法

链接: www.cnblogs.com/momozjm/p/8…

一:封装 function POST(url, params) { let promise = new Promise(function (resolve, reject) { wx.request({ url: url, data: params, method: 'POST', success: function (res) { resolve(res.data); } }) }); return promise } 二:调用 const network = require('../../utils/util.js') network.GET(url, params).then((res) => { //请求成功的操作 console.log(res) });

4、监听是否断网

(1).在app.js的onLaunch中添加如下方法:

App({
  onLaunch: function () {
    var that = this;
    wx.onNetworkStatusChange(function (res) {
      if (res.networkType == 'none') {
        that.globalData.nonetwork = true;
      } else {
        that.globalData.nonetwork = false;
      }
    })
  },
  globalData: {
    nonetwork: false,
  }
})

(2).在index.wxml页面监听当前网络状态 .js

var app = getApp();
page({
  data: {
    nonetwork: false,
  },
  onShow: function () {
    var that = this;
    that.setData({
      nonetwork: app.globalData.nonetwork,
    })
  },
})

.wxml

<block wx: if= "{{nonetwork}}">
  <view>当前网络不可用,请检查您的网络</view>
</block >

api文档: developers.weixin.qq.com/miniprogram…

4.微信小程序:消息提醒音播放

链接: www.jianshu.com/p/c918e006c…

const innerAudioContext = wx.createInnerAudioContext(); //新建一个createInnerAudioContext();
innerAudioContext.autoplay = true; //音频自动播放设置
innerAudioContext.src = '/audio/notice.mp3'; //链接到音频的地址
innerAudioContext.onPlay(() => {}); //播放音效
innerAudioContext.onError((res) => { //打印错误
console.log(res.errMsg); //错误信息
console.log(res.errCode); //错误码