微信小程序-手机 *** 作系统以及微信版本判断

微信小程序-手机 *** 作系统以及微信版本判断,第1张

首先,要判断当前用户的微信版本以及是安卓还是iOS,要调用方法wx.getSystemInfo()

官方文档:https://developers.weixin.qq.com/miniprogram/dev/api/system/system-info/wx.getSystemInfo.html

wx.getSystemInfo({

success:function(res) {

}

})

在获取成功的success方法中,res中包含相关信息,接下来就是做判断:

1.微信版本判断方法

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 = 0i<leni++) {

    var num1 = parseInt(v1[i])

    var num2 = parseInt(v2[i])

      if (num1 >num2) {

        return 1

      } else if (num1 <num2) {

        return -1

      }

    }

    return 0

  },

微信版本判断非常重要,涉及到版本兼容性.更关乎整个小程序的功能完整性.

2. *** 作系统判断

res.system.indexOf('iOS') >-1 是iOS

res.system.indexOf('android') >-1 是安卓

可根据手机 *** 作系统不同实现特殊的功能.

小程序项目中涉及到视频功能,需求就是禁止拖动进度条。但是小程序video并没有提供一个属性用来禁止进度条拖动

以上是从微信官方论坛中找到的答案,就是说如果想实现禁止拖动进度条,要么就是隐藏掉,要么就是自己自定义一个进度条。如果用show-progress=‘{{false}}’,这个属性隐藏掉了进度条,那video原本自带的底部控制栏中(播放/暂停 ,进度时间,进度条,总时长,全屏/退出全屏),这些按钮中,就只剩下全屏/退出全屏了。

开始,我决定自定义进度条,但是我发现video里嵌套的组件,虽说官网给出的是可以使用view,但是只有界面效果,却触发不了view对应的方法,也就是说,我用slider组件自定义了一个进度条,并且禁用,然而不管用。

于是乎,几经波折,来回调试,最终还是决定用video自带的控制栏,通过在进度条位置,设置一个遮罩层,再设置一下透明度,这样,光标点不到进度条,就拖动不了了。当然,这个遮罩层也是要用<cover-view>

在设置遮罩层时,还遇到了问题,就是position: relativeopacity:0无效!!!

改成这样::position: absoluteopacity:0模拟器,安卓手机上都没问题,iOS真机上无效!!!

但是我发现,将透明度改大一点,大于0,iOS上就可以了。

所以,我用

wx.getSystemInfo,来判断设备,如果是iOS,那就设置透明度为0.1,如果是安卓,就为0.

其实到这里,问题基本解决了,但是还有一点点瑕疵,就是因为保留了本身的控制栏,那全屏/退出全屏的按钮功能要保留,所以遮罩层不能罩到要用的按钮,不然就都点击不了,所以在使用的按钮上我用view,设置了一个跟遮罩层一样颜色一样透明度的还补全,这样从视觉效果上才算是过关。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11321622.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存