- 如何解决身份证上传功能无法通过审核?
[图片] 问题一:如何通过审核 我们的小程序提供给项目上劳务工人使用,工人信息需要对接到当地政府平台,所以需要实名认证。 但是我们公司的不在开通人脸核身接口的服务类目里面 https://developers.weixin.qq.com/community/business/doc/000442d352c1202bd498ecb105c00d 问题二:为什么其他小程序不在服务类目里,也可以正常使用。比如:墨计考勤(AppID:wx729d4e06667bb785) [图片][图片]
2021-05-06 - 小程序如何上传身份证照片?
小程序已开通人脸识别功能,但是我们的小程序是驾校报名系统,只需要身份证正反照片和一寸照片,不需要使用识别 功能,可以上传照片吗?申请时还会被拒吗?
2021-11-16 - 必须上传身份证的小程序审核不能通过?
"你好,你的小程序涉及收集、存储用户身份信息,平台暂不支持此功能,请修改。" 做的是网络货运司机提货和上传签单的小程序,司机注册上传身份证信息与驾驶证,这个是国家要求的,必须要传的资质,不能不收集的,这个怎么能解决?
2022-05-27 - 我是一个商家订单管理小程序,需通过“人脸核身”确认是否为商家本人,如何开通“人脸核身”功能?
业务流程是,商家通过设备完成注册认证。商家在登录小程序时,我们需校难是否为商家本人,所以需要开通“人脸核身”功能。
2023-01-04 - 小程序大量出现request:fail timeout 的错误,该如何改进?
用户大量出现request:fail timeout 的现象,而调用同样接口的APP就没有这么频繁,是不是wx.request中间还做了别的事情? 查询后端日志发现我们报request:fail timeout 的接口后端根本没有接收到,这是什么情况呢?
2021-01-13 - 【开放平台-网站应用】手机浏览器访问H5页面,如何唤起微信登录授权?
hi,目前开发的网站在PC和H5都有需求-是关于使用微信登录的情况。 目前PC使用二维码登录,这个没有问题,但是H5页面在手机浏览器里如何可以唤起微信登录呢?如果还是使用二维码,这个并不合理。 我看M.JD.COM是可以完成这个功能的,请问如何才能完成这样的需求呢
2022-06-09 - 网页接入微信登录生成二维码链接报回调地址错误,回调地址应该是什么样的呢?
[图片][图片] 我的回调地址格式应该是什么样的呢,地址是接口还是页面呢
2022-08-09 - 如何在网页端使用微信二维码扫码登录?
通过接口 const qrcodeurl=`https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=${access_token}` 获取到的二维码图片是裂开的,直接在网页端打开也是,希望提供可参考的例子
2021-05-17 - Scope 参数错误或没有 Scope 权限,错误码:10005
登录提示:Scope 参数错误或没有 Scope 权限 [图片] 排查方案: 1:使用的是订阅号,订阅号没有权限使用网页授权,详细可参考接口权限:https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Explanation_of_interface_privileges.html 2:需要已认证的服务号 3:网页授权回调域名填写错误 4:Scope参数顺序不对 5:服务号不支持扫码登录,要网站应用才支持:https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html 6:snsapi_userinfo的接口权限被封
2021-07-07 - border-radius在ios失效问题?
[图片] 描述:battery-copy类设置border-radius,在开发工具中查看正常显示,但是在ios预览和体验版显示却不生效,下图是ios显示的效果。将橙色块高度调至0时,底部的圆角也变成直角了。安卓未测试。 尝试:在battery-copy类中添加过以下代码,不生效。 backface-visibility: hidden; transform: translate3d(0, 0, 0); [图片] 在此请求大佬们帮忙看一下,代码片段:https://developers.weixin.qq.com/s/lgvHxDmn7Xlq
2020-11-06 - wx.setStorageSync 在部分苹果微信客户端的本地数据库损坏问题
可尝试以下操作:试着删除所有入口的小程序,从我的小程序、最近使用中删除,包括开发版,杀进程然后可重启微信试下, ps(该问题已经修复,等待7.0.7微信客户端上线即可)
2019-11-20 - 快递「发货接口」
快递发货接口,是一个完全免费的物流接口。它统一对接了通达系、顺丰、京东等市面上主流的快递公司,直联快递公司业务接口,给到商家稳定可靠的物流服务,也给用户带来了优质的物流收件体验。 想知道它可以为商家和用户带来什么价值? 不同类型的小程序,又该如何接入? 让我们一起通过视频来了解一下。 点击查看开发文档。 [视频]
2022-08-01 - 小程序socket.io客户端
小程序socket.io客户端
2018-03-10 - 微信小程序自定义导航栏组件(完美适配所有手机),可自定义实现任何你想要的功能
背景 在做小程序时,关于默认导航栏,我们遇到了以下的问题: Android、IOS手机对于页面title的展示不一致,安卓title的显示不居中 页面的title只支持纯文本级别的样式控制,不能够做更丰富的title效果 左上角的事件无法监听、定制 路由导航单一,只能够返回上一页,深层级页面的返回不够友好 探索 小程序自定义导航栏已开放许久>>了解一下,相信不少小伙伴已使用过这个功能,同时不少小伙伴也会发现一些坑: 机型多如牛毛:自定义导航栏高度在不同机型始终无法达到视觉上的统一 调皮的胶囊按钮:导航栏元素(文字,图标等)怎么也对不齐那该死的胶囊按钮 各种尺寸的全面屏,奇怪的刘海屏,简直要抓狂 一探究竟 为了搞明白原理,我先去翻了官方文档,>>飞机,点过去是不是很惊喜,很意外,通篇大文尽然只有最下方的一张图片与这个问题有关,并且啥也看不清,汗汗汗… 我特意找了一张图片来 [图片] 分析上图,我得到如下信息: Android跟iOS有差异,表现在顶部到胶囊按钮之间的距离差了6pt 胶囊按钮高度为32pt, iOS和Android一致 动手分析 我们写一个状态栏,通过wx.getSystemInfoSync().statusBarHeight设置高度 Android: [图片] iOS:[图片] 可以看出,iOS胶囊按钮与状态栏之间距离为:4px, Android为8px,是不是所有手机都是这种情况呢? 答案是:苹果手机确实都是4px,安卓大部分都是7和8 也会有其他的情况(可以自己打印getSystemInfo验证)如何快速便捷算出这个高度,请接着往下看 如何计算 导航栏分为状态栏和标题栏,只要能算出每台手机的导航栏高度问题就迎刃而解 导航栏高度 = 胶囊按钮高度 + 状态栏到胶囊按钮间距 * 2 + 状态栏高度 注:由于胶囊按钮是原生组件,为表现一致,其单位在各种手机中都为px,所以我们自定义导航栏的单位都必需是px(切记不能用rpx),才能完美适配。 解决问题 现在我们明白了原理,可以利用胶囊按钮的位置信息和statusBarHeight高度动态计算导航栏的高度,贴一个实现此功能最重要的方法 [代码]let systemInfo = wx.getSystemInfoSync(); let rect = wx.getMenuButtonBoundingClientRect ? wx.getMenuButtonBoundingClientRect() : null; //胶囊按钮位置信息 wx.getMenuButtonBoundingClientRect(); let navBarHeight = (function() { //导航栏高度 let gap = rect.top - systemInfo.statusBarHeight; //动态计算每台手机状态栏到胶囊按钮间距 return 2 * gap + rect.height; })(); [代码] gap信息就是不同的手机其状态栏到胶囊按钮间距,具体更多代码实现和使用demo请移步下方代码仓库,代码中还会有输入框文字跳动解决办法,安卓手机输入框文字飞出解决办法,左侧按钮边框太粗解决办法等等 胶囊信息报错和获取不到 问题就在于 getMenuButtonBoundingClientRect 这个方法,在某些机子和环境下会报错或者获取不到,对于此种情况完美可以模拟一个胶囊位置出来 [代码]try { rect = Taro.getMenuButtonBoundingClientRect ? Taro.getMenuButtonBoundingClientRect() : null; if (rect === null) { throw 'getMenuButtonBoundingClientRect error'; } //取值为0的情况 if (!rect.width) { throw 'getMenuButtonBoundingClientRect error'; } } catch (error) { let gap = ''; //胶囊按钮上下间距 使导航内容居中 let width = 96; //胶囊的宽度,android大部分96,ios为88 if (systemInfo.platform === 'android') { gap = 8; width = 96; } else if (systemInfo.platform === 'devtools') { if (ios) { gap = 5.5; //开发工具中ios手机 } else { gap = 7.5; //开发工具中android和其他手机 } } else { gap = 4; width = 88; } if (!systemInfo.statusBarHeight) { //开启wifi的情况下修复statusBarHeight值获取不到 systemInfo.statusBarHeight = systemInfo.screenHeight - systemInfo.windowHeight - 20; } rect = { //获取不到胶囊信息就自定义重置一个 bottom: systemInfo.statusBarHeight + gap + 32, height: 32, left: systemInfo.windowWidth - width - 10, right: systemInfo.windowWidth - 10, top: systemInfo.statusBarHeight + gap, width: width }; console.log('error', error); console.log('rect', rect); } [代码] 以上代码主要是借鉴了拼多多的默认值写法,android 机子中 gap 值大部分为 8,ios 都为 4,开发工具中 ios 为 5.5,android 为 7.5,这样处理之后自己模拟一个胶囊按钮的位置,这样在获取不到胶囊信息的情况下,可保证绝大多数机子完美显示导航头 吐槽 这么重要的问题,官方尽然没有提供解决方案…竟然提供了一张看不清的图片??? 网上有很多ios设置44,android设置48,还有根据不同的手机型号设置不同高度,通过长时间的开发和尝试,本人发现以上方案并不完美,并且bug很多 代码库 Taro组件gitHub地址详细用法请参考README 原生组件npm构建版本gitHub地址详细用法请参考README 原生组件简易版gitHub地址详细用法请参考README 由于本人精力有限,目前只计划发布维护好这2种组件,其他组件请自行修改代码,有问题请联系 备注 上方2种组件在最下方30多款手机测试情况表现良好 iPhone手机打电话和开热点导致导航栏样式错乱,问题已经解决啦,请去demo里测试,这里特别感谢moments网友提出的问题 本文章并无任何商业性质,如有侵权请联系本人修改或删除 文章少量部分内容是本人查询搜集而来 如有问题可以下方留言讨论,微信zhijunxh 比较 斗鱼: [图片] 虎牙: [图片] 微博: [图片] 酷狗: [图片] 知乎: [图片] [图片] 知乎是这里边做的最好的,但是我个人认为有几个可以优化的小问题 打电话或者开启热点导致样式错落,这也是大部门小程序的问题 导航栏下边距太小,看起来不舒服 搜索框距离2侧按钮组距离不对等 自定义返回和home按钮中的竖线颜色重了,并且感觉太粗 如果您看到了此篇文章,请赶快修改自己的代码,并运用在实践中吧 扫码体验我的小程序: [图片] 创作不易,如果对你有帮助,请移步Taro组件gitHub原生组件gitHub给个星星 star✨✨ 谢谢 测试信息 手机型号 胶囊位置信息 statusBarHeight 测试情况 iPhoneX 80 32 281 369 48 88 44 通过 iPhone8 plus 56 32 320 408 24 88 20 通过 iphone7 56 32 281 368 24 87 20 通过 iPhone6 plus 56 32 320 408 24 88 20 通过 iPhone6 56 32 281 368 24 87 20 通过 HUAWEI SLA-AL00 64 32 254 350 32 96 24 通过 HUAWEI VTR-AL00 64 32 254 350 32 96 24 通过 HUAWEI EVA-AL00 64 32 254 350 32 96 24 通过 HUAWEI EML-AL00 68 32 254 350 36 96 29 通过 HUAWEI VOG-AL00 65 32 254 350 33 96 25 通过 HUAWEI ATU-TL10 64 32 254 350 32 96 24 通过 HUAWEI SMARTISAN OS105 64 32 326 422 32 96 24 通过 XIAOMI MI6 59 28 265 352 31 87 23 通过 XIAOMI MI4LTE 60 32 254 350 28 96 20 通过 XIAOMI MIX3 74 32 287 383 42 96 35 通过 REDMI NOTE3 64 32 254 350 32 96 24 通过 REDMI NOTE4 64 32 254 350 32 96 24 通过 REDMI NOTE3 55 28 255 351 27 96 20 通过 REDMI 5plus 67 32 287 383 35 96 28 通过 MEIZU M571C 65 32 254 350 33 96 25 通过 MEIZU M6 NOTE 62 32 254 350 30 96 22 通过 MEIZU MX4 PRO 62 32 278 374 30 96 22 通过 OPPO A33 65 32 254 350 33 96 26 通过 OPPO R11 58 32 254 350 26 96 18 通过 VIVO Y55 64 32 254 350 32 96 24 通过 HONOR BLN-AL20 64 32 254 350 32 96 24 通过 HONOR NEM-AL10 59 28 265 352 31 87 24 通过 HONOR BND-AL10 64 32 254 350 32 96 24 通过 HONOR duk-al20 64 32 254 350 32 96 24 通过 SAMSUNG SM-G9550 64 32 305 401 32 96 24 通过 360 1801-A01 64 32 254 350 32 96 24 通过
2019-11-17 - wx.getMenuButtonBoundingClientRect兼容性问题和官方文档声明的不匹配
官方文档上说,wx.getMenuButtonBoundingClientRect是基础库 2.1.0 开始支持,但实际线上发现很多版本都不存在这个api, 以下截图是微信官方提供的其中一个错误告警信息 [图片]
2022-05-23 - wx.getMenuButtonBoundingClientRect()方法在苹果手机上的问题?
wx.getMenuButtonBoundingClientRect()方法在苹果手机上重新进入小程序后获取信息所有值都为0
2022-01-12 - 微信支付的关闭订单接口的错误码ORDERPAID代表的是交易状态还是只是支付成功不代表支付失败?
[图片]
2021-03-17 - orderpaid问题
我简单说下,我下周做微信支付,上线后,我用一个账号支付了一笔订单,成功,但是我暂未写回调。然后我把回调写好,所有得账号线上支付都是这个ORDERPAID 就是订单已支付,但是我发起得订单号是不同得
2020-11-27 - 小程序性能优化实践
小程序性能优化课程基于实际开发场景,由资深开发者分享小程序性能优化的各项能力及应用实践,提升小程序性能表现,满足用户体验。
10-09 - 小程序使用websocket连接时开发者工具可以用,体验版和开发者版本不能用,请问是什么原因?
1)用了网页测试了wss连接可以用,用的是域名连接 2)用nginx反代出来的,证书用mysll测试了,nginx.conf中location /shicong/channels/ {proxy_pass http://channels-backend/;XXX省略} 3)小程序后台也做了设置wss://xxx.com 4)卡了我三天了这个问题,用了网上其他人的方法都不行,有需要我补充的请告诉下我 5)wss的连接格式是wss://xxx.com/shicong/channels/ws/chat/w_room/?JWT TOKEN 感谢你的回复,谢谢
2022-04-19 - 请问想做一个双人实时语音聊天功能,不知道具体怎么求指教?
后台用的PHP。不接第三方sdk的话,想用websocket。想找找思路
2021-11-27 - JSAPI支付在安卓端提示缺少total_fee
[图片] 在ios端JSAPI可以支付成功,而在安卓端就如图显示,请问各位大佬有遇到过这个情况吗?要怎么解决?
2021-03-04 - 你的帐号存在以下帐号未完成注册,请完成注册/删除后再新增创建?
[图片]
2022-01-11 - (1)分包加载
编者的话:小程序自开放以来,不断推出新的能力,我们希望将这些能力背后的故事分享给大家。第一期先同大家分享小程序「分包加载」的故事。 背景 2017.01.09 小程序上线时,我们限制了代码包不能超过1MB 大小,限制大小是出于对小程序启动速度的考虑,我们希望用户在使用任何一款小程序时,都能获得一种“秒开”体验。然而,1MB 的大小也限制了小程序功能的扩展,小程序业务的发展可能需要更大的体积。 那么,能否有一种方案,在增加小程序包大小的同时,也能保持不错的启动速度呢? 为了解决这个矛盾点,我们推出了「分包加载」这个技术方案。 分包加载的介绍大部分小程序都会由某几个功能组成,通常这几个功能之间是独立的,但会依赖一些公共的逻辑,并且这些功能通常会对应某几个独立的页面。那么小程序代码的打包,大可不必一定要打成一个,可以按照功能的划分,拆分成几个分包,当需要用到某个功能时,才加载这个功能对应的分包。 对于用户来说,小程序加载流程变成了: 1.首次启动时,先下载小程序主包,显示主包内的页面; 2.如果用户进入了某个分包的页面,再下载这个对应分包,下载完毕后,显示分包的页面。 采用分包加载,对开发者而言,能使小程序有更大的代码体积,承载更多的功能与服务;而对用户而言,可以更快地打开小程序,同时在不影响启动速度前提下使用更多功能。 分包的划分在配置前首先需要开发者规划下各个分包需要容纳的内容,我们建议开发者按照功能划分的的原则,将同一个功能下的页面和逻辑放置于同一个目录下,对于一些跨功能之间公共逻辑,将其放置于主包下,这样可以确保在分包引用这部分功能时,这部分的逻辑一定存在。 在分包划分时,应该注意以下事项: 1.避免分包与分包之间引用上的耦合。因为分包的加载是由用户操作触发的,并不能确保某分包加载时,另外一个分包就一定存在,这个时候可能会导致 JS 逻辑异常的情况,例如报「"xxx.js" is not defined」这样的错误; 2.一些公共用到的自定义组件,需要放在主包内。 分包的配置当理清了分包的划分后,就可以进行分包的配置了,这一步并不复杂。 假设支持分包的小程序目录结构如下: [图片] 开发者通过在 app.json [代码]subPackages[代码] 字段声明项目分包结构: [图片] 分包加载的低版本兼容问题微信 6.6.0 版本开始支持分包加载,而对于低于这个版本的客户端,我们做了兼容处理,开发者不需要对老版本微信客户端做兼容。 对于老版本的客户端,编译后台会将所有的分包打包成一个整包,老版本的客户端依然按照整包的方式进行加载。 所以在老版本的微信客户端下,是依然采取整包加载的方式加载的,建议开发者尽量控制代码包的大小。 目前小程序分包大小的限制: 整个小程序所有分包大小不超过 4M 单个分包/主包大小不能超过 2M 随着时间推移,老版本覆盖率降低,我们会考虑进一步扩大代码包的大小。 分包加载的详细使用方法、示例项目文档上已有介绍,可查看接口文档:分包加载 如果其他问题,欢迎在评论区留言。
2018-08-17 - 小程序代码审核周期,如何加快小程序审核速度
我们开发小程序的时候,在提交代码审核时有时会等很久,有时会审核的很快,那么小程序的代码审核到底要多久呢?我们该如何加快自己小程序的被审核速度。下面程序猫给大家分享一下。 首先小程序的代码审核目前快的话几分钟就完成了,慢的话2-3天也有可能,如果超过3天,那说明你的小程序有歧义,审核员无法直接判断,尤其要注意审核期间不要撤销,一旦撤销重提,那就要重新排队审核。很多朋友小程序1天没有审就急得要死,这个完全没有必要,因为官方给出的审核时间是1-7天,如果没有超过7天,你再怎么发帖官方都是不会加急的。所以还是和客户说清楚吧,让客户耐心等待。如果是接触小程序很早的同学应该知道,过去审核都是5-7天,现在的审核速度真的算很快了。 另外有些类目是需要二次审核的,比如社交类目,视频类目。由于二次审核是政府主管机构审核,政府很忙的,所以你懂得,审核时间一般都要超过7天。还好微信考虑到实际情况,提出了超过7天审核可以预上线的功能。这里要注意下这个7天是从开始二审开始计算,而不是你提交审核开始计算。 目前能加速程序审核的只有通过小程序评测功能了 我简单介绍一下微信小程序的分项评定主要由运营指标,性能指标,用户指标这三项指标构成的,我们主要看一下这三项指标怎么提高。 运营指标: 运营指标的判定结果和其他两项略有不同的是,这个判定结果只有两种:达标和不达标。运营指标达标比较简单,三个月内没有违规即为达标,但是如果违规一次那么同样意味这至少三个月不达标所以这一点还是要慎重。 性能指标: 性能指标主要和小程序的开发水平有关,主要分为优秀,良好,一般,待优化,急待优化五种。性能指标一般需要达到的是优秀,关于如何达到优秀这个标准我们则可以根据评测的结果进行针对性的优化。 用户指标: 用户指标主要和小程序的用户挂钩,换句话也就是和运营有关,同样分为优秀,良好,一般,待优化,急待优化五种。关于如何提高用户指标这一项,我们可以主要针对两点,用户成长和用户的粘性下功夫即可。
2019-08-26 - (21)独立分包与分包预下载
在「小程序 · 小故事」的第一期,我们曾和大家一起分享过「分包加载」的故事。随着小程序功能越来越多样,页面也越来越多,但不同页面的访问频率是有一定差异的。 分包加载允许开发者将小程序划分为主包和若干个分包,将较少用到的页面或功能划分到若干个分包中,主包内只保留最频繁使用的页面和公共的代码。小程序启动时默认只加载主包,再按需加载分包。这一机制保证了在小程序包大小增加的情况下,依然能保持良好的启动速度。 为满足小程序承载的功能不断丰富的需要,小程序的代码包大小上限已提高到 8M。随着小程序应用场景和使用范围的扩大,在实践中,我们发现分包加载仍有一定的局限性。尤其是越来越多的 H5 服务迁移到小程序后,对于小程序的启动速度有更高要求。为了更好的提升小程序的加载速度和使用体验,小程序近期开放了「独立分包」和「分包预下载」两个新的能力,进一步丰富了分包加载的功能和使用场景。 01独立分包 1 技术背景 由于技术实现的差异,小程序首次启动时需要进行代码包的下载,因此在启动性能上与网页相比有一定劣势。通过对小程序启动耗时的分析,我们发现代码包大小对小程序启动速度是有最直接的影响。 一方面,代码包越大,下载时间就越长; 另一方面,代码包越大,通常意味着小程序页面结构和代码逻辑复杂,启动时代码注入执行的时间越长。 采用分包加载一定程度上解决了代码包下载耗时过长的问题。但小程序中的某些场景(如广告页、活动页、支付页等),通常功能不是很复杂且相对独立,对启动性能有很高的要求。在现有方案中,启动这一页面需要依赖整个主包的下载,如果页面在分包中,还需等待分包的下载,启动性能有严重的瓶颈。此时如果依赖开发者进行代码重构,重新分包,不仅工作量大,而且会影响其他分包的使用体验。为了解决这一问题,我们提出了「独立分包」方案。 2 功能简介 独立分包是小程序中一种特殊类型的分包,可以独立于主包和其他分包运行。从独立分包中页面进入小程序时,不需要下载主包。当用户进入普通分包或主包内页面时,主包才会被下载。 开发者可以将部分对启动性能要求很高的页面放到特殊的独立分包中。当小程序从独立分包页面启动时,只需要下载分包就可以直接运行,可以很大程度上提高分包页面的启动速度,实现小程序的秒开。 [图片] 由于小游戏中没有页面的概念,也没有小程序中多种入口的使用场景,因此小游戏目前没有支持独立分包。 3 配置方法 独立分包的配置方法十分简单,只需要在原有分包配置的基础上定义 independent 字段,即可将一个分包设置为独立分包,例如: [图片] 4 使用限制 独立分包虽然属于分包的一种,但其不依赖主包独立使用,因此在加载流程和运行环境上与普通分包相比有一些差异。除了分包本身的限制外,独立分包还有以下限制: ● 独立分包中不能依赖主包和其他分包中的内容,包括 js 文件、模板、wxss、自定义组件等; ● App 只能在主包内定义,独立分包中不能定义 App,会造成无法预期的行为; ● 独立分包中暂时不支持使用插件。 为了小程序有更好的使用体验,我们不建议开发者把过多的小程序逻辑放置到独立分包中,也不建议在小程序中过度的使用独立分包,例如把每个页面都放到一个独立分包中。 关于独立分包的详细内容请参见 独立分包 · 小程序 02 分包预下载 1 技术背景 在使用「分包加载」后,虽然能够显著提升小程序的启动速度,但是当用户在使用小程序过程中跳转到分包内页面时,需要等待分包下载完成后才能进入页面,造成页面切换的延迟,影响小程序的使用体验。分包预下载便是为了解决首次进入分包页面时的延迟问题而设计的。如果能够在用户进入分包页面之前就预先将分包下载完毕,那么进入分包页面的延迟就能够尽可能降低。 此前,小游戏中已经提供了「基于API」的分包预下载能力。在设计小程序分包预下载能力时,我们设计了「基于配置」和「基于API」两种分包预下载形式,「基于配置」的方式使用简单,且便于对预下载的使用情况进行控制,防止开发者滥用;「基于API」的方式使用起来更灵活,能够动态的调整预下载策略。综合考虑用户的使用感受和内测阶段第三方开发者的反馈后,我们最终决定首先推出「基于配置」的分包预下载能力。 2 功能简介 开发者可以预先配置某个页面可能会跳转到的分包(对于独立分包,也可以预下载主包),在进入小程序某个页面时,由基础库在后台自动预下载可能需要的分包。用户在进行页面跳转时,分包通常已经下载完成,不需要额外等待,可以有效提升进入后续分包页面时的启动速度。此外,考虑到用户的流量和存储空间,小程序也会对预下载的大小和网络进行一定的限制。 [图片] 3 配置方法 开发者可以通过在 app.json 中增加 preloadRule 字段,控制进入某个页面时进行预下载的分包,并设置触发预下载的网络环境。 [图片] [图片] 4 使用限制 对于手机用户而言,数据流量和存储空间是非常重要的资源。一方面,分包预下载能够提升小程序用户的使用体验;另一方面,过度的预下载也会破坏分包按需使用的原则,过度的占用用户的存储空间,消耗数据流量。如果开发者每次启动小程序时都将所有分包进行下载,会消耗很多不必要的流量和存储空间。 为了在分包预下载的效果和对用户资源的消耗上取得平衡,我们限制了同一个分包中的页面预下载总大小不得超过2M,并鼓励开发者按需设置分包预下载的网络条件。 关于独分包预下载详细内容请参见 分包预下载 · 小程序 03 小结 独立分包与分包预下载进一步丰富了分包加载的功能,大大拓展了分包加载的使用场景。同时,独立分包和分包预下载是相辅相成的,配合使用可以获得更好的效果。 例如,开发者可以将一个活动推广页放到一个独立分包中,利用独立分包的特性能够提升活动页面的加载速度,提升转化率。在页面中开发者可以引导有需要的用户跳转到小程序其他页面,使用小程序的更丰富的功能。在这一过程中,可以利用分包预下载能力,将主包或相关分包进行预下载,降低页面跳转的延迟,留住更多用户。 开发者在使用这两个新能力的过程中,如果遇到问题或者有什么建议,欢迎在微信开放社区(https://developers.weixin.qq.com)进行反馈,我们会根据开发者的反馈,不断的优化和丰富分包加载功能,减少功能限制,提升小程序的加载性能和使用体验。
2018-10-14 - uni.navigateTo编译后为何不是wx.navigateTo?
在和buildx 写uniapp 用了uniapp的api 例如uni.navigateTo 编译成微信小程序后,源代码还是uni.navigateTo而不是wx.navigateTo,这个微信小程序是如何能正常解析并跳转呢
2022-01-14 - uniapp集成windicss的流程
一、背景介绍 2021年开始,国外很流行原子化css框架(tailwindcss、windicss)。 目前国内使用的人还不是很多; 一些人持有反对意见,觉得很麻烦,很像内联样式。另外一些人,觉得有帮助,能解决自己开发中遇到的问题(我就是支持者)。通过对比,个人认为windicss比tailwindcss好用许多,下面介绍一下如何在uniapp使用windicss 二、集成步骤 1)更新hbuilder最新版 2)创建一个uniapp项目,找到manifest.json文件,vue版本选择3 3)安装依赖: cnpm i -D vite-plugin-windicss windicss 4)创建vite.config.js import WindiCSS from 'vite-plugin-windicss' import { defineConfig } from 'vite' import uni from '@dcloudio/vite-plugin-uni' export default defineConfig({ plugins: [ WindiCSS({ scan: { dirs: ['.'], // 当前目录下所有文件 fileExtensions: ['vue', 'js', 'ts'], // 同时启用扫描vue/js/ts }, }), uni(), ], }) 5) 在main.js文件引入 // import 'virtual:windi.css' // 引入组件和工具类 import 'virtual:windi-components.css' import 'virtual:windi-utilities.css' 6) 运行项目、并测试类名 你好,世界! 7) 如下效果,那恭喜你,完成了 [图片] 三、如果有用的话,点赞支持一下哈。
2022-04-18 - 小程序登录、用户信息相关接口调整说明
公告更新时间:2021年04月15日考虑到近期开发者对小程序登录、用户信息相关接口调整的相关反馈,为优化开发者调整接口的体验,回收wx.getUserInfo接口可获取用户授权的个人信息能力的截止时间由2021年4月13日调整至2021年4月28日24时。为优化用户的使用体验,平台将进行以下调整: 2021年2月23日起,若小程序已在微信开放平台进行绑定,则通过wx.login接口获取的登录凭证可直接换取unionID2021年4月28日24时后发布的小程序新版本,无法通过wx.getUserInfo与<button open-type="getUserInfo"/>获取用户个人信息(头像、昵称、性别与地区),将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息),获取加密后的openID与unionID数据的能力不做调整。此前发布的小程序版本不受影响,但如果要进行版本更新则需要进行适配。新增getUserProfile接口(基础库2.10.4版本开始支持),可获取用户头像、昵称、性别及地区信息,开发者每次通过该接口获取用户个人信息均需用户确认。具体接口文档:《getUserProfile接口文档》由于getUserProfile接口从2.10.4版本基础库开始支持(覆盖微信7.0.9以上版本),考虑到开发者在低版本中有获取用户头像昵称的诉求,对于未支持getUserProfile的情况下,开发者可继续使用getUserInfo能力。开发者可参考getUserProfile接口文档中的示例代码进行适配。请使用了wx.getUserInfo接口或<button open-type="getUserInfo"/>的开发者尽快适配。开发者工具1.05.2103022版本开始支持getUserProfile接口调试,开发者可下载该版本进行改造。 小游戏不受本次调整影响。 一、调整背景很多开发者在打开小程序时就通过组件方式唤起getUserInfo弹窗,如果用户点击拒绝,无法使用小程序,这种做法打断了用户正常使用小程序的流程,同时也不利于小程序获取新用户。 二、调整说明通过wx.login接口获取的登录凭证可直接换取unionID 若小程序已在微信开放平台进行绑定,原wx.login接口获取的登录凭证若需换取unionID需满足以下条件: 如果开发者帐号下存在同主体的公众号,并且该用户已经关注了该公众号如果开发者帐号下存在同主体的公众号或移动应用,并且该用户已经授权登录过该公众号或移动应用2月23日后,开发者调用wx.login获取的登录凭证可以直接换取unionID,无需满足以上条件。 回收wx.getUserInfo接口可获取用户个人信息能力 4月28日24时后发布的新版本小程序,开发者调用wx.getUserInfo或<button open-type="getUserInfo"/>将不再弹出弹窗,直接返回匿名的用户个人信息,获取加密后的openID、unionID数据的能力不做调整。 具体变化如下表: [图片] 即wx.getUserInfo接口的返回参数不变,但开发者获取的userInfo为匿名信息。 [图片] 此外,针对scope.userInfo将做如下调整: 若开发者调用wx.authorize接口请求scope.userInfo授权,用户侧不会触发授权弹框,直接返回授权成功若开发者调用wx.getSetting接口请求用户的授权状态,会直接读取到scope.userInfo为true新增getUserProfile接口 若开发者需要获取用户的个人信息(头像、昵称、性别与地区),可以通过wx.getUserProfile接口进行获取,该接口从基础库2.10.4版本开始支持,该接口只返回用户个人信息,不包含用户身份标识符。该接口中desc属性(声明获取用户个人信息后的用途)后续会展示在弹窗中,请开发者谨慎填写。开发者每次通过该接口获取用户个人信息均需用户确认,请开发者妥善保管用户快速填写的头像昵称,避免重复弹窗。 插件用户信息功能页 插件申请获取用户头像昵称与用户身份标识符仍保留功能页的形式,不作调整。用户在用户信息功能页中授权之后,插件就可以直接调用 wx.login 和 wx.getUserInfo 。 三、最佳实践调整后,开发者如需获取用户身份标识符只需要调用wx.login接口即可。 开发者若需要在界面中展示用户的头像昵称信息,可以通过<open-data>组件进行渲染,该组件无需用户确认,可以在界面中直接展示。 在部分场景(如社交类小程序)中,开发者需要在获取用户的头像昵称信息,可调用wx.getUserProfile接口,开发者每次通过该接口均需用户确认,请开发者妥善处理调用接口的时机,避免过度弹出弹窗骚扰用户。 微信团队 2021年4月15日
2021-04-15