小程序中的一些常用方法

有的时候开发太急,我们并没有时间去仔细翻阅文档,这时候偶尔就会遇到一些不好找问题的坑
记录下我自己开发中遇到的坑

微信小程序

  • 弹出层滚动穿透
  • 启动更新问题
  • 比较小程序基础库版本号
  • 设置上一个页面的data数据
  • 图片宽高等比显示

弹出层滚动穿透

有时候会出现在自己编写的弹出层中移动手指,页面也会跟随滚动的情况,解决方法如下


  内容

catchReturn(){
  return;
}

启动强制更新

有时候由于这样那样的不可抗力,版本提交会很频繁,这时候由于小程序的运行机制,用户打开我们的小程序时,有可能并没有显示最新的运营内容
小程序冷启动时如果发现有新版本,将会异步下载新版本的代码包,并同时用客户端本地的包进行启动,即新版本的小程序需要等下一次冷启动才会应用上。
如果需要马上应用最新版本,可以使用 wx.getUpdateManager API 进行处理。但请注意在使用时应检测基础库版本号,做好兼容。

比较小程序基础库版本号

这个是小程序官方给的方法,网上查出来的一些直接用字符串比较,parseInt 比较的方法是错的


function compareVersion(v1, v2) {
 v1 = v1.split('.')
 v2 = v2.split('.')
 var len = Math.max(v1.length, v2.length)
 while (v1.length < len) {
   v1.push('0')
 }
 while (v2.length < len) {
   v2.push('0')
 }
 for (var i = 0; i < len; i++) {
   var num1 = parseInt(v1[i])
   var num2 = parseInt(v2[i])
   if (num1 > num2) {
     return 1
   } else if (num1 < num2) {
     return -1
   }
 }
 return 0
}
compareVersion('1.11.0', '1.9.9') // => 1 // 1 表示 1.11.0 比 1.9.9 要新
compareVersion('1.11.0', '1.11.0') // => 0 // 0 表示 1.11.0 和 1.11.0 是同一个版本
compareVersion('1.11.0', '1.99.0') // => -1 // -1 表示 1.11.0 比 1.99.0 要老

另:后续版本会在基础库中增加版本比较方法

设置上一个页面的data数据

在页面跳转有些频繁的时候,跳转页面填写的表单数据需要传回上一个页面,如果不用缓存

let pages = getCurrentPages(),// 获取当前页面栈
  prevPage = pages[pages.length - 2]

prevPage.setData(data)

图片宽高等比显示

我自己试object-fit这个属性在小程序中不生效


你可能感兴趣的:(小程序中的一些常用方法)