- 03-03
- 小程序存储详解
本地文件分为三种: 本地临时文件:临时产生,随时会被回收的文件。通过调用特定接口产生,运行时最多存储 4GB,结束运行后,如果已使用超过 2GB,会以文件为维度按照最近使用时间从远到近进行清理至少于2GB。本地缓存文件:小程序通过接口把本地临时文件缓存后产生的文件,通过调用特定接口产生,不能自定义目录和文件名。跟本地用户文件共计,小程序(含小游戏)最多可存储 200MB。本地用户文件:小程序通过接口把本地临时文件缓存后产生的文件,允许自定义目录和文件名。跟本地缓存文件共计,小程序(含小游戏)最多可存储 200MB。 tips: 本地用户文件最多可存储200M,如果存储超过200M后,继续存储文件会失败,平台不会自动清理,只有在代码包被清理的时会被清理。本地临时文件在退出小程序后随时可能会被清理掉,建议不要过度依赖,也不需要主动清理。版本更新不会清理文件。 小程序storage 同一个微信用户,同一个小程序 storage 上限为 10MB。storage 以用户维度隔离,同一台设备上,A 用户无法读取到 B 用户的数据;不同小程序之间也无法互相读写数据。小程序体验版和线上版本共用一套storage,保证体验版和线上版本所有逻辑的一致,如果两者有产品或者技术逻辑上的不一致,有可能体验时候是好的,发布以后出现问题.小程序的storage是持久化的,没有定期清理的策略。小程序被销毁,切换微信号,也不会影响storage。用户主动删除小程序,微信设置页清理缓存, 系统清缓存等操作会导致storage被清理,包括用户文件。 参考文档:https://developers.weixin.qq.com/miniprogram/dev/framework/ability/file-system.html
2024-09-11 - 请教本地临时文件和本地用户文件的存储及清理机制?
1、请问,本地用户文件最多可存储200M,如果用户存储超过200M后,小程序如何处理?根据时间从远到近清理文件吗? 2、本地临时文件,运行结束后超过2G会清理,那不超过2G会清理本地临时文件吗? 3、比如我拍照后的临时文件,直接存储在本地临时文件中,不移动到本地用户文件,下次用户冷启动小程序,存储大小再2GB以内,可以保证本地临时文件可用吗? [图片] 4、清理策略中提到,代码包被清理的时候本地用户文件会被清理,那如果小程序版本更新后,文件会被清理吗? [图片]
2023-12-21 - 如何在小程序通过<web-view>标签跳转到指定公众号文章中?
如何在小程序通过<web-view>标签跳转到指定公众号文章中?知道链接是 https://mp.weixin.qq.com/s?XXXXXXXXXXXXXXXXX,可以实现跳转,但是需要将https://mp.weixin.qq.com添加到小程序后台的业务域名中吗?
2023-08-01 - Android app可以跳转到公众号页面吗? 有没有对应的api?
Android app可以跳转到公众号页面吗? 有没有对应的api?
2023-07-26 - 小程序隐私保护指引设置的调试心得
微信官方于8月10日发布了《关于小程序隐私保护指引设置的公告》,但是就目前大家的开发、调试以及产品上的问题,并没有做出统一的答复,这里我开一个专门的文章,来记录接口调试过程中的问题,以及找一找大家的问题,尝试做一个整理。 开发历程 ——8月22日晚—— 官方更新了文档,目前已经可以正常开发调试了: 以下指南中涉及的 getPrivacySetting、onNeedPrivacyAuthorization、requirePrivacyAuthorize 等接口目前可以正常接入调试。调试说明: 在 2023年9月15号之前,在 app.json 中配置 __usePrivacyCheck__: true 后,会启用隐私相关功能,如果不配置或者配置为 false 则不会启用。 在 2023年9月15号之后,不论 app.json 中是否有配置 __usePrivacyCheck__,隐私相关功能都会启用。 ——8月16日中午—— 【BUG】微信回滚了代码,此时 wx.getPrivacySetting 接口获取到的 needAuthorization 始终为 false,估计是为了解决上午开发版、体验版小程序报错的问题。 ——8月16日上午—— 此时 wx.getPrivacySetting 接口获取到的 needAuthorization 为 true,但是所有开发版、体验版小程序若未完成隐私保护接入,都会报错:errMsg: "requirePrivacyAuthorize:fail privacy permission is not authorized" errno: 104 【BUG】在 wx.onNeedPrivacyAuthorization 回调后获取到了 resolve 对象,并在用户点击同意后进行了回调,但是发现当buttonId指定错的时候接口报错:errMsg: "requirePrivacyAuthorize:fail privacy permission is not authorized or buttonId is wrong" errno: 104 诡异的是就算报错了,调用隐私接口时也能够成功。 ——8月15日—— 开发过程中发现的问题: 【8月16日官方已解决】调用 wx.requirePrivacyAuthorize 后始终会进入到 success 回调,无法触发 wx.onNeedPrivacyAuthorization 回调,并且 wx.getPrivacySetting 接口获取到的 needAuthorization 始终为 false。 提问 【问】onNeedPrivacyAuthorization触发时机:开发者调用需要授权的方法有组件(camera等)和api(getLocation等)形式,是在组件初始化、API调用时触发?还是要开发者主动调用requirePrivacyAuthorize才会触发,未授权的时候组件、API都无法调用?(来自 @金瓜兜儿) 【官方答复】api是在api调用时触发事件,组件是在组件初始化时机会触发事件,以上是被动触发的方式; 如果要主动触发,用户可以主动调用requirePrivacyAuthorize触发事件,这是两种方式,根据这个原则由用户自行判断执行逻辑;未授权时组件api都无法调用,授权后才可调用 ———————————————— 【问】兼容问题:相关接口从基础库2.33.0 开始支持,如果用户基础库低于这个版本,相关的组件使用、api调用都会失败吗?(来自 @金瓜兜儿) 【官方答复】不会 【解析】目前基础库2.33.0以上的版本分布(https://developers.weixin.qq.com/miniprogram/dev/framework/client-lib/version.html) 占比为86.84%,基本涵盖了绝大部分用户。开发的时候,调用onNeedPrivacyAuthorization可以简单地通过: if (wx.onNeedPrivacyAuthorization) 来处理兼容性逻辑。 低于2.33.0以下的用户调用隐私接口、隐私组件不受影响。 ———————————————— 【问】onNeedPrivacyAuthorization在用户同意过后,如果小程序有新增需要用户授权的功能,更新了小程序用户隐私保护指引,是不是会再次触发需要用户再次同意?(来自 @金瓜兜儿) 【官方答复】更新了之后 只有新增的接口需要再次触发用户同意 ———————————————— 【问】如果用户同意了授权,再调用camera等组件、getLocation等API,自带的授权弹窗是否还会再次弹出?(来自 @金瓜兜儿) 【官方答复】会的 【解析】为了防止多个弹窗影响用户体验,建议在进入到有类似功能的页面前,主动调用wx.requirePrivacyAuthorize触发主动授权。 ———————————————— 【问】如果小程序功能是地图相关,进入小程序首页就需要用户同意,如果用户不同意就只能退出小程序、或者重复提示用户同意隐私声明,小程序审核时会不会因为强制用户授权而被审核人员驳回?(来自 @金瓜兜儿) 【官方答复】如为地图类小程序,确有定位展示内容等则可弹窗告知用户。但若用户不同意后,未涉及定位展示内容则需要让用户正常体验 ———————————————— 【问】api在调用时触发,回调是会进入fail还是一直等待开发者resolve后返回success?(来自 @金瓜兜儿) 【答】经过8月16日上午的测试,wx.requirePrivacyAuthorize调用后会一直等待开发者resolve({ event:'agree' })之后才会进入到success流程,如果resolve({ event:'disagree' })则进入到 fail 流程。 ———————————————— 【问】未授权用户同时调用10个不同的隐私接口,会触发多少次onNeedPrivacyAuthorization?(来自@georgejinme-) 【答】待验证。 ———————————————— 【问】组件在初始化时触发,触发之后组件是什么状态,需不需要开发者重新渲染?还是说resolve之后会自动渲染处理? (来自 @金瓜兜儿) 【答】待验证。 ———————————————— 【问】每个页面调用隐私api的地方都未知, 比如a页面我调用了3个api, 我是不是要在a页面准备一个隐私弹窗, 其他bcdef页面都要准备隐私弹窗组件?(来自 @axing) 【答】可以参考 @一笑皆春 写的《关于新版隐私协议接口wx.onNeedPrivacyAuthorization的适配解读以及实现代码》(https://developers.weixin.qq.com/community/develop/article/doc/000c0680fe02e02201308a4c961813),每个页面都准备一个统一的隐私弹窗组件,并且在 onShow 中注册 onNeedPrivacyAuthorization,这会覆盖监听。 我本人还有两个思路,第一种是在用户进入小程序的首页时,主动调用requirePrivacyAuthorize触发隐私授权,这样只需要在首页编写一个隐私弹窗组件,但缺点是若您的小程序有多个入口时,这个方法可能也会较为麻烦。此外,有wx.login这个接口的前车之鉴,用户一进入小程序就要求授权,很可能微信审核不予通过。 第二种是不使用弹窗,而是用一个单独的页面进行用户授权,这时在 app.js 中注册 wx.onNeedPrivacyAuthorization 即可,一旦触发就跳转至该页面。 ———————————————— 【问】请问,我在小程序后台隐私指引里列出了3个隐私接口,比如A B C 。现在用户在某页面触发了A接口,然后用户同意授权了。此时微信侧记录的用户授权了A接口还是A B C三个接口都授权了?(来自 @BOBO) 【答】经过8月16日上午的测试,无论有多少个隐私接口,只要用户授权过一次,后续的所有隐私接口都能授权。但是调用在隐私协议中未列出的隐私接口将直接失败,不会触发 onNeedPrivacyAuthorization。
2023-08-24 - 关于申请小程序地理位置相关接口的规范
随着小程序生态的发展,越来越多小程序开发者会通过官方接口来给用户提供便捷的服务。如何在提供良好的体验时又能保障用户合法权益,如何正确的进行相关接口准入申请?本文将会从以下方面进行详细说明。 一、可通过相应接口准入申请的小程序 对象:自身已有地理位置相关使用场景或需地理位置相关场景完善服务内容的小程序 申请wx.getLocation接口参考案例1)含有交通服务类目,同时含有代驾服务、租车网点查询服务、查询附近车辆服务、城市共享交通服务等 [图片] [图片] 2)含有餐饮-点餐平台、餐饮-外卖平台类目、餐饮-餐饮服务场所/餐饮服务管理企业,并涉及实际送餐场景 [图片] [图片] 3)含有工具-信息查询、工具-办公、工具-设备管理类目,并涉及与地理位置相关的打卡服务业务,如智能门禁、智能穿戴设备等 [图片] 4)含有汽车服务-维修保养、汽车服务-汽车用品、汽车服务-汽车经销商/4S店、汽车服务-汽车厂商、汽车服务-汽车预售、汽车服务-二手车类目,涉及提供汽车售卖、维保洗美服务、查找附近的维修点/洗车网点等导航服务 [图片][图片] 5)含有电商平台/商家自营类目,涉及提供售卖商品线下发货、收货服务、线下商超导览、导航服务 [图片] 6)含有金融-银行、金融-非金融机构自营小额贷款/融资担保/商业保理类目,涉及银行小程序提供线下网点预约、基于地理位置取号并现场报到、附近网点导航等服 [图片] 7)含有电商平台/商家自营类目,涉及提供售卖商品非即刻交易线下发货、收货服务,比如线下跑腿收货、社区团购线下自提点收货等服务场景 [图片] [图片] 申请wx.onLocationChange接口参考案例1)含有交通服务类目,同时含有代驾服务、城市共享交通服务等 [图片] 2)含有生活服务类目,同时含有线下跑腿、开锁服务、其他上门作业等实际服务内容 [图片] 3)含有旅游-景区服务、旅游-住宿服务,涉及提供景区导航、导览服务、酒店导航服务 [图片] 二、无法通过相关接口准入申请的小程序 1)开发者因涉及营销活动,希望申请wx.getLocation接口便于帮助用户定位所在位置,但根据服务内容可知当前仅需获取用户所在城市/地区,无需通过wx.getLocation获取详细的经纬度定位,使用wx.getFuzzyLocation、wx.chooseLocation或wx.choosePoi接口实现上述场景 [图片] 2)开发者因涉及提供外卖平台服务,希望申请wx.onLocationchange接口监听用户实时地理位置运动轨迹,但根据服务内容可知当前外卖平台服务仅需要获取用户外卖收货地址,并不展示派送员实时位置,无需通过wx.onLocationchange获取用户的实时运动轨迹,使用wx.getFuzzyLocation、wx.chooseLocation或wx.choosePoi接口实现上述场景 [图片] 3) 开发者因涉及提供新闻资讯服务,希望申请wx.onLocationchange接口监听用户实时地理位置运动轨迹,但小程序内未含有相关使用场景,所以暂时不支持 [图片] 4)开发者因涉及线上商城发货服务,需用户提供收货地址,希望申请wx.getLocation接口获取用户当前详细的实时位置,如果需要获取用户的收货地址可以使用wx.chooseAdress接口一键导入。如果需要省去用户手动填写地址的流程,可以使用wx.chooseLocation或wx.choosePoi让用户自行选择当前地理位置,无需获取用户获取用户当前详细的实时位置。 [图片] 5)房地产、餐饮、商家自营等小程序,希望申请wx.getLocation接口获取用户当前实时位置信息,为用户展示附近、周边门店信息,提供推荐营销服务,且小程序内未提供线下门店导航服务,仅在小程序内为用户提供附近、周边门店信息展示服务,该场景不支持使用wx.getLocation、wx.onLocationchange这类高精度位置接口,建议开发者使用wx.getFuzzylocation、wx.chooseLocation或wx.choosePoi实现上述场景。 [图片] 三、接口准入申请的步骤 1)登录微信公众平台:https://mp.weixin.qq.com,进入小程序后台「首页」,左侧导航栏点击「开发管理」模块 [图片] 2)「开发管理」模块下「接口设置」 [图片] 3)找到需要申请的地理位置接口点击「去开通」进入接口申请页面 [图片] 4)进入接口申请页面后,在接口「申请原因」中详细描述申请接口在小程序内的使用场景,或选择性提供小程序的图片视频或网页辅助审核,最后点击「提交申请」即完成该接口申请 [图片] 5)接口申请审核结果可通过「接口设置」模块的接口状态,或「通知中心」站内信进行查看 [图片] [图片]
03-13 - history模式,IOS弹框显示config:invalid signature,realAuthURL?
安卓直接拿windows.localtion.href 假如是 https://developers.weixin.qq.com/community/article/edit/000204985a07402dc83ef365a57013 那是没问题的。 但如果是苹果,会出现realAuthURL:" https://developers.weixin.qq.com"签名失败,只要将 https://developers.weixin.qq.com/community/article/edit/000204985a07402dc83ef365a57013 改成 https://developers.weixin.qq.com 去配置就行了
2022-07-15 - 产品原型设计实战
3.1学习对象+课程目的+推荐工具 [视频] 3.2用户体验地图及功能页面归纳 [视频] 3.3墨刀原型工具介绍(1) [视频] 3.3墨刀原型工具介绍(2) [视频] 3.3墨刀原型工具介绍(3) [视频] 3.4手把手1注册页(1) [视频] 3.4手把手1注册页(2) [视频] 3.5自主实操1登录页(1) [视频] 3.5自主实操1登录页(2) [视频] 3.6手把手2底部菜单栏(1) [视频] 3.6手把手2底部菜单栏(2) [视频] 3.6手把手2底部菜单栏(3) [视频] 3.7手把手3发布树洞(1) [视频] 3.7手把手3发布树洞(2) [视频] 3.8手把手4树洞广场、点赞(1) [视频] 3.8手把手4树洞广场、点赞(2) [视频] 3.9自主实操2我的树洞(1) [视频] 3.9自主实操2我的树洞(2) [视频] 3.10课后小练(1) [视频]
2021-09-15 - 小程序开发实战
高校大赛系列课程之“小程序开发实战”,是由清华大学和微信团队共制作的小程序学习教程。通过需求分析、原型设计、小程序前端实现、后台接口开发、小程序对接接口,逐步教大家如何“从无到有”完成小程序项目
2021-11-25 - 2019 微信公开课:九个案例讲透小程序留存
学会这 9 个案例,做好小程序留存。
2021-12-16 - 2021 微信公开课PRO
2021微信公开课的主题是“激发WeBuild”, 站在新十年的起点,微信希望通过小程序、视频号等产品,让每一种能力都拥有绽放的舞台,人人可以经营,人人可以创作,新的创造和新的想象力将被无限激发。
2022-06-27 - 微信开发者工具 1.03.2011111 RC 更新说明
下载地址Windows 64、Windows 32、macOS1、支持设置插件页面为自定义编译条件的启动页面 [图片] 2、第三方平台小程序支持使用企业微信模拟器进行调试 企业微信的服务商与微信小程序的第三方平台不是一个体系,为小程序接入企业微信,需要走企业微信的服务商模式。 但是还是可以先在开发者工具上进行适配调试 本次更新放开了第三方平台小程序无法显示企业微信模拟器的限制。 3、优化新建项目流程 为了简化新建和导入小程序、小游戏项目的操作,开发者工具优化了创建项目的流程。除了可以更快的从导入按钮选择文件夹进行导入之外,在创建时,工具亦会自动区分本次操作是新建还是导入。 [图片] 4、保留上次预览的二维码 为了避免开发者因预览准备耗时过长,无法收起预览面板处理其他事务,我们对预览浮窗进行了改造,支持在预览浮窗收起的状态下,继续执行生成预览二维码处理流程,预览按钮的图标显示为对应的处理状态。 [图片] 再次点击预览时,将展示上次生成的预览二维码。 需要点击刷新二维码,才会主动触发再次预览 [图片] 本功能可在 设置 -> 通用设置 -> 保留上次的预览二维码 中启用。 [图片] 5、云开发控制台文件存储配置 云开发存储功能在使用时,可能会遇到 CDN 缓存更新不及时的问题,导致用户查看的文件版本较旧。在存储 -> 存储配置中,现已提供缓存配置,可以针对不同的文件、文件后缀和文件目录设定缓存时间,从而保证缓存的有效性。 [图片] 6、修改 appid支持下拉选取最近使用 在 详情 -> 基本信息 面板中,点击修改appid时,支持下拉选择最近使用的appid。 [图片] 7、体验评分支持导出报告运行完体验评分之后支持导出报告内容。 [图片] 8、支持切后台后可以获取用户位置 增加 wx.startLocationUpdateBackground 等相关位置 API 支持 工具设置页位置消息交互对齐客户端 [图片] 9、云开发静态网站托管支持自定义域名 静态网站托管是云开发为开发者提供的 Web 资源托管服务,网站的静态资源(HTML、JavaScript、CSS、图片、音频、视频等)可以托管在该服务上,并享有 CDN 加速、免鉴权打开小程序等能力。除了使用静态网站托管提供的默认域名外,现在你还可以绑定自己拥有的域名到静态网站托管,绑定之后,访问该域名即可访问静态网站托管中的所有资源文件。详情。 [图片] 10、静态网站和云存储支持上传文件夹 将文件夹 / 文件拖入控制台即可上传文件夹所有内容至静态网站/云存储。在拖入文件/文件夹后会出现确认框并支持自定义配置。 [图片] 11、云开发拓展功能入口优化 随着云开发拓展功能的增多,云开发控制台提供了用户自定义顶部工具栏的能力,可以将常用的功能固定到顶部工具栏中快速查看,也可以隐藏平时不需要的功能。 [图片] 12、云开发支持云托管云托管是云开发为开发者提供的原生容器服务,用户可面向代码/镜像等多种方式使用,无需维护复杂的容器环境,可专注于自身的业务,一键开通后即可享受能自动扩缩容的容器资源,并享有更多微信相关能力。 [图片]
2020-11-17 - 新增官方收录入口“购物直播”
各位微信开发者: 由于平台策略调整,购物直播频道灰度将停止,并将于2021.5.10回收。感谢灰度期间,各位小程序直播商家、开发者对购物直播频道的关注和贡献! ——————————————————————————————————————————————————————————— 各位微信开发者: 小程序直播团队在安卓版微信灰度发布购物直播功能,便于用户发现感兴趣的直播。用户可通过“发现 > 小程序 > 购物直播”进入观看,购物直播中包括直播中、预告和回放三种类型的直播间。 注意:购物直播目前仅对安卓版微信7.0. 5及以上版本灰度。 [图片] [图片] 【购物直播FAQ】 1. 什么样的直播间有进入到购物直播的权限? a. 创建直播间时打开了“官方收录“开关(注意:测试直播间请不要打开该开关。接口创建的直播间默认被官方收录,可前往控制台关闭)。 b. 无违规(直播间、主播、商品均无违规,具体链接参考《主播行为规范》、《微信小程序直播功能服务条款-禁售商品目录》)。 c. 直播间整洁、收音清晰。 d. 主播介绍商品专业清晰,商品展示完整。 e. 封面图片简洁清晰、主体明确,内容与直播内容相符。(详细请参见《购物直播频道封面图规范》) 2. 准出标准 a. 直播过程中主播有违规行为,直播间将被清退。 b. 商家需保证稳定的开播频次,持续生产优质的直播内容,保证合规运营。平台可能会对不满足要求的商家持续清退。 3. 为什么我的直播间符合了上述标准,仍然没有在频道内看到我的直播间? 购物直播是根据用户兴趣等维度进行了个性化推荐,符合条件的直播间不一定向所有用户推荐。 4. 如何才能进入购物直播频道并获得更多的曝光? 除满足问题1中的规则外,商家/主播可通过提供优质的商品和直播内容来获得更多曝光
2021-05-06