微信小程序h5兼容性问题

Posted 夜丶陌颜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序h5兼容性问题相关的知识,希望对你有一定的参考价值。

1. 微信小程序中border-image 设置渐变 导致border-radius 不生效。

  border-radius: 20rpx;
  border-image: linear-gradient(180deg, rgba(200, 200, 200, 0), rgba(228, 217, 192, 1)) 2 2;

不建议两者同时使用,实测ipone12 不兼容, ipone 12以上正常显示。可以使用背景图片代替。

2. h5 使用原生table tr、th、td封装表格,在ios 中样式失效

建议使用dev 整体布局。

3. 企业微信群二维码插件materialPlugin、cell 遇到 slot(插槽)第一次群码加载不出来。

不要再slot 中使用第三方插件。

4. 微信小程序 font-weight:500/600/700 加粗 在小米手机中不生效。

解决方案:使用font-weight:bold 代替 数字。

5. new Date(‘2022-01-11 12:00:00’) 获取时间

问题:ios 遇到 ‘2022-01-11 12:00:00’ 格式化失败
解决方案:把 - 变成 /, new Date(‘2022/01/11 12:00:00’)

6. 微信小程序修改radio 样式

问题:在子组件中修改radio 样式不生效

解决方案:样式写在父组件中(Page页面中), 子组件设置addGlobalClass: true,作用到子组件

/** 父组件中编写 */
/* 外面的边框可以这样 */
radio
  display: flex
  align-items: center
  .wx-radio-input
    height: vw(10)
    width: vw(10)
    border-radius: 50%
    border: vw(1) solid #979797 //替换边框 隐藏原有边框

radio 
  .wx-radio-input.wx-radio-input-checked 
    border: vw(1) solid #979797 !important
    background-color: #FFF

/* 中间圆点   选中的背景需要是xml中设置 */
radio 
  .wx-radio-input.wx-radio-input-checked
    &::before 
      border-radius: 50%
      /* 圆角 */
      width: vw(6)
      /* 选中后对勾大小,不要超过背景的尺寸 */
      height: vw(6)
      /* 选中后对勾大小,不要超过背景的尺寸 */
      text-align: center
      font-size: 0
      /* 对勾大小 30rpx */
      color: #FFF
      /* 对勾颜色 白色 */
      background-color: #8B8B8B
      transform: translate(-50%, -50%) scale(1)
      -webkit-transform: translate(-50%, -50%) scale(1)

/** 子组件中设置 */
Component(
  options: 
    addGlobalClass: true
  ,
 )

微信小程序ios 底部安全距离(黑色长条)

问题:

使用constant、env:

 padding-bottom: constant(safe-area-inset-bottom) !important
 padding-bottom: env(safe-area-inset-bottom) !important
 
 // 遇到问题,iponeX 以上正常,但是低版本ipone 手机本身没有底部安全距离,设置之后导致paddiing 变大
 注意:`env、constant` 遇到软键盘弹出,多次操作之后会导致`padding-bottom` 失效

微信apigetSystemInfoSync

 let screenHeight = wx.().screenHeight
 let bottom = wx.getSystemInfoSync().safeArea.bottom
 this.globalData.isIPhoneX = screenHeight !== bottom

// 定义全局变量控制isIPhoneX 是否需要安全距离

使用

<view class=“ isIPhoneX ? 'safe-distance' : ''”> 安全距离兼容</view>

style

// 安全距离
.safe-distance 
     padding-bottom: constant(safe-area-inset-bottom) !important
 	 padding-bottom: env(safe-area-inset-bottom) !important

两者配合使用

微信小程序 ios text-allign:end 不兼容

问题:input 居右对齐,text-allign:end 在ios 不兼容
解决方案:text-allign:right

微信小程序中的ios兼容性问题

1.ios中input的placeholder属性字体不居中

对placeholder设置line-height及font-size
对input设置高度

2.ios中滚动卡顿

设置-webkit-overflow-scrolling:touch;

3.微信小程序中解决ios中new Date() 时间格式不兼容

在实现日期时间对比时,时间格式为”2018-11-12 11:12:11”,然后利用new Date() 转换时,ios中无法兼容,安卓中显示正常
原因:IOS支持的日期类型为2018/11/12,所以把"-"替换成"/",则IOS和安卓都可兼容

let time = \'2018-12-10 11:11:11\'; 
let temporaryTime = new Date(time.replace(/-/g,\'/\'));

4. 微信小程序scroll-view隐藏滚动条方法

在wxss里加入以下代码:

::-webkit-scrollbar{ width: 0; height: 0; color: transparent; }

参考原文: http://www.okeydown.com/html/2018/11-02/956.html

以上是关于微信小程序h5兼容性问题的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序H5页面缓存问题处理

H5打开微信小程序

微信小程序webview打开h5点击按钮无反应

微信小程序webview内H5多级跳转没有返回键问题

h5打开微信小程序带参数

微信小程序封装H5使用web-view源码