- generateScheme 文档表述与实际不符
URL Scheme 已经不能生成永久链接了,但是接口文档 generateScheme 中表述仍然为“可以选择生成到期失效和永久有效的小程序码” https://developers.weixin.qq.com/community/develop/doc/000aeab88a4ea0c5c89d81fde5b801
2023-02-14 - 调试基础库 2.24.6 setNavigationBarTitle 返回值为 undefined
如下图,调用 setNavigationBarTitle API 返回值是 undefined,调试基础库 2.24.6,移动端未测试。 [图片] [图片]
2022-06-29 - 请问涉嫌违规的申诉都是机器人吗?为什么调整发布之后还是用旧版的审核然后说仍然存在违规?
内部用的一个小程序,收到涉嫌违规的警告后按照要求紧急修改并发布了一个新版本,然后提交申诉,结果是仍然存在违规。 重点是,我在新版特地改了一下界面,但申诉驳回的截图是旧版的,请问这说得通吗? 小程序违规 - 修改发新版 - 提交审核 - 拿旧版的小程序审核,说仍然存在违规所以拒绝。 请官方出来给个答复,这个审核是个摆设吗?一直拿被警告的版本审核这谁能申诉成功?
2022-05-26 - 请问 Canvas 画布的 Image onerror 事件为什么不会触发?
复现链接: https://developers.weixin.qq.com/s/6EteKSm37Lye 实测在 iOS 中预览正常,在安卓中预览无效。下面是在开发工具中以及安卓真机预览效果截图: [图片] [图片]
2022-04-29 - 可以支持异步 setData 吗?
目前在 async/await 中参入回调式 setData 函数显得非常别扭,举个列子,我希望在请求完成后不论成功与否都处理一些单独的业务逻辑: try { const { data: res } = await fetch.getRes('/get', { page: 1, limit: 10 }) if (res.code === 0) { this.setData({ count: res.data.count, list: res.data.list }, () => { doSomeThings1() doSomeThings2() }) } else { wx.showToast({ title: res.data.msg, icon: 'none' }) doSomeThings1() doSomeThings2() } } catch (err) { wx.showToast({ title: '服务器开小差了', icon: 'none' }) doSomeThings1() doSomeThings2() } 会看到上面出现了大量重复代码,增加代码阅读成本,降低开发效率。当然,可以单独封装一下逻辑,例如下面这样: const doThings = () => { doSomeThings1() doSomeThings2() } try { const { data: res } = await fetch.getRes('/get', { page: 1, limit: 10 }) if (res.code === 0) { this.setData({ count: res.data.count, list: res.data.list }, doThings) } else { wx.showToast({ title: res.data.msg, icon: 'none' }) doThings() } } catch (err) { wx.showToast({ title: '服务器开小差了', icon: 'none' }) doThings() } 这时候仍然可以看到出现了三次重复的逻辑。 如果有 setDataAsync 方法,代码看上去会像下面这样更加简洁: try { const { data: res } = await fetch.getRes('/path', { page: 1, limit: 10 }) if (res.code === 0) { await this.setDataSync({ count: res.data.count, list: res.data.list }) } else { wx.showToast({ title: res.data.msg, icon: 'none' }) } } catch (err) { wx.showToast({ title: '服务器开小差了', icon: 'none' }) } doSomeThings1() doSomeThings2() 当然,也许可以自己定义一个 setDataAsync 方法,像这样: Page({ /** * 异步设置数据 * @param {Record<string, any>} data * @returns {Promise<void>} */ setDataAsync(data) { return new Promise(resolve => void this.setData(data, resolve)) } }) 可是上面这么做存在一些问题: 每个页面/组件都需要手动写上该方法,仍然会增加大量的重复代码。结合 TypeScript 时,无法和 setData 一样获得良好的代码补全(setData 方法可以获得在 data 中定义的属性并自动补全)。 以上是目前我开发时遇到的问题,目前能想到的方案是支持异步 setData,可以考虑两种方式: 让原有的 setData 返回 Promise,原有 callback 保持不变。新增 setDataAsync 异步方法。个人认为第一种方式更好些,希望开发团队考虑下。
2022-03-28 - 可以实现同一个小程序在企业微信中通过微信打开?
因为小程序可以同时在企业微信和微信中使用,有时候需要在企业微信中切换到微信中使用小程序,目前只能通过 navigator 设置 open-type="exit" 这样只能退出让用户手动在微信打开,有没有支持直接跳转的办法呢? <navigator target="miniProgram" open-type="exit">
2021-12-08