记首次小程序遇到坑及解决
创始人
2025-05-31 14:25:11
0

前言

由于工作需要,首次进行微信小程序开发,从基础环境搭建到小程序发布,体验到小程序便捷的同时,也踩了不少坑,在此记录下。

1、弹窗事件穿透问题

这个问题相信很多小程序开发者都会碰到。
现象描述:打开一个弹窗,滑动弹窗中内容,会影响到下层UI,导致下层UI跟随滑动。
解决方式:
在标签中添加@touchmove.stop.prevent,如下示例:


...

2、PC端微信小程序不支持下拉刷新

建议使用ScrollView实现

3、PC端微信小程序不支持自定义标题栏

image.png
若设置了自定义导航栏,在PC端展示会出现两个导航栏,如下:
两个导航栏

4、rich-text支持富文本节点不足

不是所有的标签、属性都支持,支持属性参考:支持属性

5、网络访问不支持http访问

开发模式可以通过配置暂时性的忽略以方便开发,但是在小程序发布时就必须要采用https了,并且还要在微信小程序开发者后台【项目配置中】提前配置合法的request域名。
开发模式配置方式:
微信开发者工具 → 右侧工程【详情】→ 勾选【不校验合法域名…】,如下图:
image.png

6、文件上传

仅支持单文件上传,若有多文件上传的需要自己封装函数,多次调用uni.uploadFile();

注意:上传前先在微信小程序后台配置下上传的合法域名,否则是上传不了的。笔者在这里犯了次错误。

7、canvas页面中的弹窗要使用cover-view

canvas在移动端运行为作为原生组件,其层级高于小程序组件,因此要保证弹窗的层级高于canvas,必须使用同为原生组件的cover-view组件.
cover-view的使用,类似小程序组件View的使用。

值得注意的是:z-index属性对原生组件在真机上不生效,因此显示在Canvas上的要放在布局时要放在canvas后面;

8、在IOS端蓝牙连接时手机息屏或小程序处于后台无法进行通信

解决方案:
方式一:保存屏幕常亮

uni.setKeepScreenOn({keepScreenOn:show
})

方式二:
在uniapp工程的app.vue中,监听onShow(显示)和onHide(隐藏)方法
在微信小程序app.js中监听onAppShow()和onAppHide()

在笔者的工程中是采用两者结合的方式,如下:

  1. 在onHide断开蓝牙连接并记录断开连接的设备信息;
    2.在onShow时重新与断开的设备进行蓝牙连接;
    3.同步并处理离线的蓝牙数据;
    代码如下:
//增加保持小程序屏幕常亮
uni.setKeepScreenOn({keepScreenOn:show
})
if(osName === 'ios'){if(show){//展示if(hideDevice){let {deviceId,mac,localName,name} = hideDevicelet dev = {deviceId,mac,localName,name}console.log(`进入前台恢复蓝牙连接:${deviceId}`)//连接蓝牙设备...}hideDevice = undefined}else {//隐藏let device = this.globalData.deviceconsole.log("连接的设备==>",device)if(device){console.log(`进入后台断开蓝牙连接:${device.deviceId}`)hideDevice = device//断开连接的设备uni.closeBLEConnection({deviceId:device.deviceId})}}
}


先就这些吧,后面发现了在补上,有同学发现其它的坑也可以在评论区一起交流下。

相关内容

热门资讯

计算机组成原理实验1---运算...     本实验为哈尔滨工业大学计算机组成原理实验,实验内容均为个人完成,...
3 ROS1通讯编程提高(1) 3 ROS1通讯编程提高3.1 使用VS Code编译ROS13.1.1 VS Code的安装和配置...
前端-session、jwt 目录:   (1)session (2&#x...
前端学习第三阶段-第4章 jQ... 4-1 jQuery介绍及常用API导读 01-jQuery入门导读 02-JavaScri...
EL表达式JSTL标签库 EL表达式     EL:Expression Language 表达式语言     ...
数字温湿度传感器DHT11模块... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
【内网安全】 隧道搭建穿透上线... 文章目录内网穿透-Ngrok-入门-上线1、服务端配置:2、客户端连接服务端ÿ...
【Spring Cloud A... 文章目录前言Metadata元数据ClassMetadataSpring中常见的一些元注解Nacos...
React篇-关于React的... 一.简介1.介绍用于构建用户界面的 JavaScript 库2.创建项目(1)手动创建Documen...
win7 Pro 英文版添加中... win7pro x64英文版添加中文语言包1、下载语言包,并解压成lp.cab,复制到...
Android开发-Andro... 01  Android UI 1.1  UI 用户界面(User Interface,...
基于springboot教师人... 基于springboot教师人事档案管理系统【源码+论文】 开发语言:Jav...
编写软件界面的方式 本文重点解决如下问题:编写软件的界面有哪几种方式?通常情形下࿰...
keil调试专题篇 调试的前提是需要连接调试器比如STLINK。 然后点击菜单或者快捷图标均可进入调试模式。 如果前面...
GO语言小锤硬磕十三、数组与切... 数组用来保存一组相同类型的数据,go语言数组也分一维数组和多维数组。 直接上代码看一下...
三级数据库备考--数据库应用系... 1.数据库应用系统设计包括概念设计、逻辑设计、物理设计3个步骤,每个步骤的设计活动按照...
prometheus数据持久化... https://segmentfault.com/a/1190000015710814 promet...
孩子用什么样的灯对眼睛没有伤害... 现代社会高速发展,越来越多的人开始重视身体健康,尤其是很多家长ÿ...
微软Bing GPT支持AI绘... 我想要一张图片:大象、珊瑚、火山、云朵我想要一张图片:亚特兰蒂斯...
最新!5月IPO受理数创今年新... IPO市场新动态。5月30日,共有4家IPO企业获得受理,其中创业板打破今年“0受理”现象,迎来首批...