美文网首页微信小程序开发者
小程序中的一些常用方法

小程序中的一些常用方法

作者: 柚吖柚柚子 | 来源:发表于2018-07-09 14:38 被阅读0次

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

    微信小程序

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

    弹出层滚动穿透

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

    <view catchtouchmove="catchReturn">
      <text>内容</text>
    <view>
    
    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这个属性在小程序中不生效

    <image mode="widthFix"></image>
    

    相关文章

      网友评论

        本文标题:小程序中的一些常用方法

        本文链接:https://www.haomeiwen.com/subject/fhdzuftx.html