微信小程序项目中的踩坑记录

2021-07-16  本文已影响0人  焚心123

1、写class中的三木运算符的时候不要进行换行,否则编辑器报错

2、在小程序中使用flex进行布局,在ios手机上,也就是ipone等机型,底部会有问题,我们需要加一个代码padding-bottom: env(safe-area-inset-bottom);(可以加到当前整个大的盒子中就可以)(可以百度这一句代码,详细的看看)将底部的安全距离进行流出来,还有有时候底部固定,中间进行overflow:auto;flex:1;的时候,底部的高度会没有了,这个时候第一种就是将高度加多一点,第二种就是外部不加高度,使用子元素的高度加margin或者是padding进行顶一下

3、自定义的底部弹窗,点击阴影和关闭按钮进行隐藏,但是点击其他的空白区域也会触发冒泡事件,直接给白色的部分,大的盒子加上catchtap,这个点击事件可以什么也不做,这样的话,再点击其他的空白区域就不会进行触发冒泡事件了

image.png
image.png image.png

4、 当我们使用点击按钮或者是三个点进行分享,由于在生命周期中,没有成功,失败的回调函数,我们不知道用户有没有点击分享出去,点击分享,在进行取消,也是会被认为是分享成功的,可以使用wx.showShareMenu这个解决,不过这个目前是测试版本,只支持安卓手机,所以会有点问题

5、微信小程序中input框禁止输入表情符号

//禁止input框中输入表情符号
  const emoji = function(data){//data就是input框中的value值
    let reg = /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/gi ;
    if(data.match(reg)){
      data = data.replace(reg,'');
    }
    return data;
  }

6、websocket的注意事项(可以查看我的这篇文章)

7、在小程序中使用web-view的注意事项

<web-view src="https://www.baidu.com"></web-view>

<web-view src="https://www.baidu.com/help.html?p=123'}}"></web-view>
<!-- <web-view src="https://www.baidu.com/help.html?p=timestamp'}}"></web-view> -->
小程序跳转到其他的小程序,接收到的参数,一般会在app.js中的onLaunch和onShow中都可以接收到
小程序获取用户的运动步数的问题
 wx.getWeRunData({//获取微信用户运动步数的api
      success:res=>{
        console.log(res);
      },
      fail:msg=>{//用户拒绝后的处理
        console.log('用户拒绝');
        console.log(msg);
        wx.showModal({
          title:'需要授权才可以',
          success:res=>{
            if(res.confirm){
              wx.openSetting({//直接打开到设置页面,让用户自己手动的进行授权
                success (res) {
                  console.log(res.authSetting['scope.werun']);//返回true,说明用户授权了,返回false,说明用户没有或者是关闭了,需要进行提示
                }
              })
            }
          }
        })
      }
    })
=================使用wx.getSetting获取用户是否授权===============
 wx.getSetting({
      success(res) {
        console.log('---------sasa-----------');
        console.log(res.authSetting['scope.werun']);
        if (!res.authSetting['scope.werun']) {
          wx.authorize({
            scope: 'scope.werun',
            success () {
              console.log('111');
            },
            fail:_msg=>{
              // console.log((_msg));
            }
          })
        }
      },
      fail:msg=>{
        console.log('错误');
        console.log(msg);
      },
      complete:_s=>{
        console.log(_s);
      }
    })
小程序中使用canvas,获取不到node,这个我们要将canvas写成是单标签就可以了(或者你直接将我的这段代码直接进行cv就可以了)
<view class="wrap">
  <canvas type="2d" id="canvas" style="width: 100%; height: 100%;" />
</view>

onReady: function () {
  // 使用 wx.createContext 获取绘图上下文 context
  const query = wx.createSelectorQuery()
    query.select('#canvas')
      .fields({ node: true, size: true })
      .exec((res) => {
        console.log(res);
        const canvas = res[0].node
        const ctx = canvas.getContext('2d')

        const dpr = wx.getSystemInfoSync().pixelRatio
        canvas.width = res[0].width * dpr
        canvas.height = res[0].height * dpr
        ctx.scale(dpr, dpr)

        ctx.fillRect(0, 0, 100, 100)
      })
  },
微信小程序中使用uCharts
微信小程序中生成小程序码,长按手机不展示识别二维码的情况
在小程序中生成条形码
npm i wxapp-barcode
使用scroll-view的上拉加载及页面本身的下拉刷新的问题

后续碰到其他的问题,会进行及时更新的,小伙伴们也可以将你遇到的问题进行留言,让我们一起完善这篇文章,加油!!!

上一篇 下一篇

猜你喜欢

热点阅读