一、API 功能使用
Q1:xxx fail must be invoked by user gesture
errMsg: xxx fail must be invoked by user gesture
出现该错误是因为小游戏框架对一些API,比如 tt.requestSubscribeMessage、tt.shareAppMessaged 的调用存在限制,这些API 必须由用户点击触发。
以具体代码为例:
tt.requestSubscribeMessage({...}) // 直接调用,会报错 ... must be invoked by user gesture tt.onTouchEnd(()=>{ tt.requestSubscribeMessage({...}). //正确调用 })
注意:必须保证是在 tt.onTouchEnd 的回调里面同步调用,其他比如 tt.onTouchStart 也会报错。
对于使用第三方引擎开发的开发者来说,一般只要保证这些API是在引擎对应的触摸事件里面处理调用即可。
Q2:...user dir saved file size limit exceeded
出现该报错,大部分是 FileSystemManager.unzip 接口的调用导致,该报错具体原因是因为小游戏 ttfile://user 目录中的文件已经超过了小游戏规定的50M。
在解压过程中,unzip 不断把文件放入到 ttfile://user目录中,导致超过了阈值。
Q3:异步的报错 [promise] [unhandled]
对于异步报错,没有更多信息,可以复现后去小游戏开发者后台模块查看,辅助定位。
Q4:图片显示问题
想要显示用户头像,但发现头像域名会有很多种,在后台配置域名白名单感觉无法覆盖?
请直接使用 tt.createImage 来负责图片的显示,该API 去显示网络图像时,不会进行域名白名单的校验。关于具体游戏引擎的使用,文档里面也有介绍。
Q5: get shareInfo return null
在分享时候,回调失败,失败信息如上
出现该报错,大部分情况是小游戏纬度的分享状态异常,可以检查平台站内信或者联系小游戏运营。
Q6: tt.shareAppMessage 分享录屏结果打开摄像头
当channle == 'video' 时,小游戏框架会检查传入的 videoPath 是否为空,以及文件是否存在。当上述检查未通过时,会自动拉起摄像头,进行拍抖音。
Q7: 激励视频广告返回报错 1004
该报错为正常报错,代表当前没有合适的广告。对此,小游戏框架有新增录屏激励能力,参考激励视频广告
二、开发过程
Q1: 域名配置问题: url is not valid domain
类似问题:
- 后台已经配置了域名,但是为什么还是提示域名非法: url is not valid domain?
- IDE的时候请求都正常,但是发布到线上的时候就报错,为什么?
对于所有通过tt.request, tt.downloadFile, tt.connectSocket, tt.uploadFile 发起的请求,都需要在后台配置域名白名单。并且,白名单的配置只需要配置域名的主机名部分即可,请不要在配置里面加端口号。
Q2: 测试版二维码扫描后提示“暂无打开权限”
测试版二维码每天扫码的设备有上限,如果超过上限会有上面提示,需要等待24小时恢复。所以请避免泄露测试版二维码。
Q3: 如何动态获取小游戏的版本号和appid
可以通过 tt.getLaunchOptionsSync API 获取。
Q4: 测试版本没问题,但是线上版本就有问题
这种大部分情况是白名单配置导致的,可以检查后台白名单配置。也可以在开发时候,选择开启IDE 中的校验域名白名单,保持和线上环境一致。