此篇随着我开发中遇到的问题累计更新
授权
- 所有的云函数调用,必须要先在项目入口授权,不然云函数调用无效
获取用户信息流程
// 获取openId
let getOpenId = async (option) => {
let res = await cloud.topApi.invoke({
api: "taobao.miniapp.userInfo.get",
authScope: "scope.userInfo"
});
let info = res.result.model;
return info;
};
事件
- ios系统的tap类型事件触发有延迟,也就是一秒内最多触发3下左右,两只手点就不会有问题。其中包括onTap onTouchStart
配置
app.json中的 window
- defaultTitle (安卓不显示标题,ios显示)(已修复)
- transparentTitle (提交工单回复说 “always” 无效, 请使用 “auto”, 经过我测试这两个都在真机上面无效,谨慎使用)
- transparentTitle 在二级页面不展示标题问题,navigationBarForceEnable 在app.json中把这个设置为true
组件
swiper
tips: 如果你想设置swiper的宽高,请尽量在acss中加上 !important 否则很可能会失效,至少我的就是这样
- 全屏swiper,在第一张滑动到最后一张时 以及 最后一张滑动到第一张的时候滑的很快的话 会闪白,如果滑动的时候点击,会卡住,会整个swiper-item都会消失,只有背景展示。
- 为了避免这种问题,尽量把 circular 设置为 false
- 文档里面的必填是假的,有些可以不填
API
my.chooseImage
- 拍照或者从相册中选择图片
- 安卓手机会在选择图片后默认拉起一个裁剪页面,如果不需要这个页面的话,要在调用里面配置一个参数
- isClipped: false
my.createInnerAudioContext
- 这个api是用来创建音频的
- 使用这个要注意,在有音效和背景音乐的需求时,最好是去掉音效这个需求,因为在真机中只能允许一个音频播放,也就是说触发音效时,背景音乐会停止播放
- 它的src 属性值必须是 https 或 http 协议的远程资源,本地资源不行
- 域名限制 如小程序云存储域名、.alicdn.com 、.aliimg.com 、 *.taobao.com 、 *.aliyun.com, 如果你购买了阿里云oss 可以把资源放在阿里云oss上面引用,如果没有阿里 oss,可以放在云存储上面,请看下一条。
canvas
- canvas同层渲染不能用,在app.json中配置"enableSkia":“true”,会导致canvas无法渲染
- canvas绘制要执行ctx.draw()函数
- 如果要绘制和导出在同一时刻,要把绘制方法卸载draw的回调函数内。文档
云开发
使用云存储的资源
- 如果你想在云存储中引用资源来作为src使用,那么你会发现无效,因为云存储中的不是https 协议
let urls = await cloud.file.getTempFileURL({
fileId: ['cloud://xxx1', 'cloud://xxx2']
})
- 这个api 可以通过云存储域名解析得到https 或 http 的url资源
- 文档链接:点我
需求
- 如果你想让你的页面全屏展示,请在全局的acss中给page加上
tips: 尽量不要在最外层容器用absolute,因为我在项目中遇到ios系统定位不准的情况,导致页面底部会有空白
width: 100%;
height: 100%;
position: fixed;
开放能力
- 如果你想使用Pixi来开发淘宝小游戏,淘宝对pixi的支持并不好,所以建议不要使用
- 如果你想使用three.js 来开发3D 小程序,不建议使用
各位看官,有遇到什么坑可以留言,或者有什么解决发案,以及我说的有什么错误的都可以留言,谢谢各位。
第一次更新时间: 2020/07/27
第二次更新时间: 2020/09/07
第三次更新时间: 2020/09/24