小程序开发常见问题解决方法

1 阻止事件冒泡

//catchtap替换bindtap

    
    点击操作
  

2 wx.previewImage点击显示大图(放大黑屏解决)

//wxml
 

      

    
 async previewImg(e) {
  let index = e.currentTarget.dataset.index; //获取点击图片的index
  const{imgPprefix,urls:imagesList}=this.data

    await wx.previewImage({
      urls:imagesList.map(url=>{return `${imgPprefix}${url}`}), //需要预览的图片http(https)链接列表,注意是数组,imgPprefix是后端返回图片要拼的前缀
      current: `${imgPprefix}${urls:imagesList[index]}`, // 当前显示图片的http链接,默认是第一个,有index就从index开始
    })

//点击显示大图时图片没出来,一直转圈,但打印路径可以正常访问可能原因: 
//1: 后端返回的数据开头可能有空格,但是用打印出来的链接浏览器忽略了造成的
//2: 给urls 加前缀时,忽略了是个数组,直接拼接的

  },

3 自动填充input或textarea值

       
//只需要绑定一个value属性,inputText是js文件中data内需要填充的数据

4 发送给后端code 报错code无效

可能是前端的appId和后端的appId不一致造成,粗心忘了换的!在project.config.json 文件夹内修改appid 和后端统一,如果是测试号开发的话,不要通过右上角详情里去修改,因为我就出现了显示修改成功,实则没有修改


不要尝试这样修改

在这里修改

5 触底加载没反应

1 、配置问题
2、加载列表外层盒子设置了高度,导致高度不够触底

6 绑定点击事件没有触发

原因是绑定的函数后面多加了空格


提示警告
  
    取消授权
  

点击事件使用bindtap 会事件冒泡,出现多个点击事件,不需要的话可以改成catchtap

7 引入Vant 日历组件点击关闭按钮不能隐藏
当引入Vant日历组件时,出现了不选择日期就不能隐藏日历的问题,点击关闭按钮和背景模态框会回缩一点又弹出,原因是把组件代码包裹在其它标签内,把代码单独拿出即可,给之前包裹的标签绑定事件即可实现选取隐藏.

7 小程序内插入html代码片段

//wxml文件

8 使用getUserProfile接口报错原因

//报错:wx.getUserProfile is not a function

使用要求:
1.开发者工具版本不低于 1.05.2103022
2.基础库版本不低于 2.10.4

原因: 开发者工具上基础库版本太低,修改一下即可
image.png

9 分享小程序给好友,朋友圈

在需要分享的页面js的onLOad 或 onShow 生命周期内调用 wx.showShareMenu() 开启分享按钮

   wx.showShareMenu({
      withShareTicket:true,
      menus:['shareAppMessage','shareTimeline']
      })

10 检查手机号、邮箱格式是否正确

function examinePhone(phone){
          if(!phone){
          console.log("手机不能为空")

             }else  if(!/^1[3456789]\d{9}$/.test(phone)){

            console.log("手机格式不正确")
              }
},
function examineEmail(email){
        let reg = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/ //验证邮箱正则
       if(!reg.test(email)){
                console.log('邮箱格式不正确!')
          }
}


11 手机端预览项目时,请求没有执行,但是打开控制面板则请求执行且成功

原因: 可能是没有在公众平台配置域名导致的,之所以打开控制面板就能请求是因为开发者工具本地设置的不校验合法域名的原因

12 微信审核上线不通过,客服反馈的问题,体验版不能复现?

这个问题真的需要记录一下,最近一个uniapp开发的项目需要审核上线,但每次都不允通过,反馈的问题都说登录功能不符合规范要求;因为之前是一进入页面就要求登录;
后来调整代码后,按照官方规范,体验完整流程后再自愿登录;测试没问题,发布版本,等待审核;
但每次都被驳回,理由是一进页面就要求登录,就很气,和同事测试过都没问题,一度怀疑官方看的是旧版本代码,或者有缓存,咨询客服又说清空了缓存,换了设备,都是需要登录;
后来经过很长的测试,终于发现,直接从发现栏进入的首页就是登录页;而扫码进入的是index页面,真正的首页;
我们测试时都是直接扫体验码进入的,没问题,但是两种情况的场景值不同,加上pages.json页面,登录页放在第一位,就导致了从发现栏一打开就需要登录的情况;
解决: 将pages.json页面,首页放在第一位即可;
总结: 问题说大不大说小不小,却浪费了很多的时间,也算是长了一回见识了哈哈

13 使用fixed布局,安卓正常显示,ios样式消失

解决: 不要用fixed布局....烂娃儿ios; 不算解决方案哈哈,仅仅记录踩坑的原因,因为样式已经在代码上运用上了,就是没效果,很懵

14 小程序监听用户右上角的关闭行为

//app.js  文件  监听程序的关闭事件 通过获取当前页面来判断是否是你需要监听的页面
  onHide(e) {
    let pages = getCurrentPages();
      if (pages['0'].route == '想要知道是否为此页面的关闭路径') {
      console.log('隐藏')
    }
  },

你可能感兴趣的:(小程序开发常见问题解决方法)