- 优化视图页动画效果(下)
[视频] 下面我们看实践二:使用关键帧动画。 在用户主页页面里面实现了以滚动驱动的响应式动画相关的逻辑,可以在这个页面方法setUpAnimation里面可以看到,本质上响应式动画它也是一个通过animation接口实现的。 重点是在最后一个参数,一个叫做ScrollTimelineObject参数。这个参数它不一样,规定了将动画绑定在哪一个滚动的组件上以及滚动触发的边界值还有对应的时长等等这些信息。主要的JS代码如我们现在屏幕上看到的这些所示设置了两组响应式动画,一组依据scroller这个组件的纵向滚动而变化,另一组根据scroller2的横向滚动而变化。 下面开始实践二使用关键帧动画的一个代码显示。 我们需要在用户主页这个页面里面添加一个方法,先看一下最终的实现的代码,在JS文件里面有一个叫做setUpAnimate这样的方法,这个方法是在哪里调用的?它是在我们的onReady页面的周期函数里面在这个地方进行调用,将这个方法放在我们的项目里边,这个方法相对比较长一些,它主要是设置了两个响应式动画。前面这个地方这是有一个接口创建了SelectorQuery一个查询对象去查询scroller这样的一个组件,这个组件其实在我们的页面里面已经存在了。我们可以看一下它就是我们当前的scroll-view这样的一个组件,上下的滚动的组件,然后下面还有一个在这个地方有查询了一个scroller2 另外的一个组件,这个组件是一个横向滚动的组件,也是一个scroller的组件。 查询到组件以后它要做什么事情?我们看一下设置响应式动画的代码,主要是在这个里面在它查询以后的回调里面然后用animate去设置它这个对象。首先设置动画的一个对象就是这个要对谁起作用然后是它的一个关键帧。设置关键帧中间的一个状态,最后关键就是我们刚才提到的时间线的一个对象、滚动时间线对象,然后在这个里面我们需要去设置它受制于哪一个滚动组件。比如它受制于这个然后滚动的跨度,时间跨度这个范围是2000,开始的偏移量以及结束的偏移量还有滚动的这个方向一共是两个,一个是vertical这个是纵向的,还有一个horizontal是一个横向的。 下面我们看到另外的一个。这个地方,它后面的绑定,它有一个叫做scrollTimeLine的参数对象。然后这个地方它这个方向写的就是横向的一个滚动,这一共是两组动画的一个设定。这里边每一个animation、animate的一个调用,其实就是在实现一个动画 对一个组件这是一个nickname、这是一个search_input。这些其实在我们这个代码里面都有,我们可以拿id可以搜索到它,都是有的,这个代码现在这个地方已经添加了。 另外我们还需要在onReady里面去调用,在这个页面组件创建完成的时候去设置动画。我们需要在onReady这个周期函数里面去设置它,这个周期函数在我们这个里面好像还没有对吧。我们可以加一个onReady然后调用这个方法,这个代码已经准备好了现在我们重新编译,看一下它的一个效果。我们选择用户主页,然后进行测试、滚动,当我们滚动的时候我们可以看到用户的头像在缩小由方块变成一个圆形对吧。当滚动到一定程度的时候,我们可以看到这个昵称会向上滑出这个屏幕,同时input也就是我们搜索框它会从一边慢慢的显示出来对吧,看起来很有互动性这样的一种效果。 这就是我们要实现的一种联动的这样的一种效果,这种效果其实我们是可以通过参数相关的一些改变,去改变它的动画效果的。比如说我们刚才看到的这个地方,它是因它而改变对不对,像这个地方,假如我们要改它的变化的幅度比如这个地方是设置时长的,如果是我们给它改成1000,时间短了但是它动画所要改变的这些内容它其实没有变,相当于动画在更短的时间内完成。我们现在可以看到它这个效果其实就是昵称这个地方已经发生了改变了 。因为这个地方我们可以看到这个是针对avatar,然后头像所示的动画,因为我们这个时间改了,所以它动画的效果也改了,我们把给它恢复一下。 另外一个效果是在这个地方,一个横向滚动,当我们继续往这滚动的时候,这个地方有一个查看更多,但是效果不是特别明显。我们可以看一下它的一个参数,修改一下它的参数,这个是关于横向滚动响应式动画的一个设置。主要的代码是在这个地方,这个时间我们可以改长一点,然后再刷新一下。因为这种效果它本质上没有更好的一种办法,就是你如果想要一个体验更佳的一种用户体验的话,一种效果的话需要不断地去调这个参数,然后去让它呈现一个更好的效果。 现在我们可以看到这个地方当我们往这滑动的时候,它这个地方有一个半圆的弧形,对不对?这个其实就是我们在这个地方通过改变这个width,改变它的width,然后去实现的。transform是我们这个页面里边的一个组件,我们可以去搜索一下 看一下,是这个地方它的一个组件对吧,然后它文字的一个变化。这个地方伴随着一个文字的变化就是释放跳转,有这样的显示,这个变化它是在我们这个代码里边有另外的一个叫做scroll这个方法去判断。我们滚动的宽度以及屏幕的宽度,然后做的一个判断去改变的文本,这个是通过这个地方来改变的。它其实不是通过上面动画去改变的。在这个地方这有一个catchScroll它绑定了这样的一个滚动回调,所以它在我们横向滚动的时候会触发这样的一个函数的执行,这就是关于实践二的一个演示。 下面我们看实践三:使用WXS实现动画。仍然是在用户主页页面里边,当向页面底部滚动时,这上面有这个标签例如推荐 评价 订单这三个标签,它会随着我们用户向下滚动的时候而自动切换选择状态,这是我们要实现的一个效果。 这个效果是没有逻辑层代码参与的,它完全是由my.wxs这个脚本去实现的。在WXML这个代码里面滚动事件绑定在了一个WXS脚本导出的事件句柄函数,也就是一个叫做onScroll这样的一个函数上面了。也就是我们现在在屏幕上看到的这样的一个代码在scroll-view组件里面,我们可以看到它有一个叫做catchscroll它里面的一个值是my.onScroll,这就是绑定在我们WXS模块里面的方法上面 是这样的一种方式,my.wxs模块的代码。我们现在可以看到如屏幕上显示的这就是在WXS模块脚本的内部可以通过selectAllComponents或者是selectComponent这样的一个接口去查询页面上的组件,查询以后再通过setStyle方法设置组件的样式。另外我们还可以通过addCalss removeClass hasClass等方法进行类样式的一个操作,组件动画的一个本质其实就是不断地改变组件的一个样式,然后这个WXS脚本可以在这个视图层改变样式。它原理上就所有的动画其实都是可以由WXS脚本去改写。 现在我们开始实践三,使用WXS实现动画的一个代码演示。 首先我们要创建一个WXS这样的一个脚本模块,这样脚本模块的一个创建一般有两种方式: 第一种是我们直接写在小程序的页面里面, wxml这个页面里面。 另外一种方式就是写在一个独立的页面里边,然后再通过这种模块引入的方法去引用它。 我们接下来采用第二种方式就是为了让这个代码更简单清晰,把它写在一个单独的页面里面去。看一下我们最终的一个源码,这有一个叫做my.wxs 这是我们最终的源码,我们把它拷贝一下。在这个目录下面,创建一个my.wxs这样的一个文件。这个文件之前已经有了,我们可以再覆盖给它拷贝过来,这个文件就是我们要写的WXS的模块的一个代码。在这个里面我们可以看到用了很多var,然后作为声明变量的一个关键字,这里面只能使用ES5的一个语法。ES6的一些语法不能使用,像let 像const还有像箭头函数等等这些都不可以使用,包括在最后这个模块导出的时候,这个地方也不能简写。因为在ES6里边可以这个地方,可以冒号后面以及冒号都可以略写对吧,在ES5里面这个不行,所以我们这个地方还是老老实实的把两个都给它写上。 下面我们再看一下我们这个代码它主要是干了什么事情?主要就是导出了onScroll这样的方法。然后在onScroll里面是查一下我们这个地方有这两个变量的值是不是已经完成了设置,这个主要是取我们这个页面滑动到一定程度,就是滑动到什么程度会触发相应的标签的一个选择,就取它的一个位置。我们大概是取到了从300然后会显示一个,然后800,然后会触发另外一个变化,是这样的结果。为了使这个值更加精准,这个地方我们又做了一次查询,这个查询代码它其实只会执行一次。在这个里面我们用了ownerInstance,ownerInstance它其实是我们小程序的页面在调用我们这个方法的时候给它传进来的,它代表的是我们当前的组件属于哪一个组件。 它的父组件上,它会有一个方法,本质上是两个方法。我们这个地方用的是selectAllComponents,这是查询所有,另外还有一个把All给它去了,查询单个的也是可以的。查询语法跟我们平常所用的createSelectorQuery里面用的查询语法是一样的,其实跟我们在H5里面用的查询节点的语法也是类似的。前面加个点,代表的是以类样式然后进行查找,下面这些代码就是把这个值给它算出来。 算出来以后,接下来我们有一个selectTag。这个是选择指定标签的一个组件,怎么选?这个地方再次用了这个接口,后面语法我们可以看到它中间其实它是可以用两个类样式的。它代表的一个所属关系,前面是一个父对象,然后后面是一个子组件,它是有一个从属关系可以这样去写。 然后下面这个地方是关键,我们这地方要去判断如果是它用hasClass去判断,如果它没有样式,selected其实是一个样式,可以搜索下这个样式。 我们要在这个页面里面去找,这个是有的对吧。我们可以看到它这个地方选中以后 它这个背景色会变成一个红色,也就是它有一个红色的选中状态,也就是我们现在看到的推荐这个标签名它所展示的这样的一种样式。 接着继续往下看,这个地方主要的一个功能就是切换样式把我们当前要选择的这个给它加上selected的样式。然后同时把其他的样式给它去掉,已经选择了的要给它去掉,这个地方是if判断,通过我们滚动值,这个滚动值其实是从我们这个事件里边。e它代表了一个事件对象,它有一个detail,detail里面会有一个scrollTop这样的一个滚动的数据属性,因为这个onScroll是绑定在滚动的组件上面,所以它会有这样的一个事件属性,然后拿到以后我们就与前面取到的point1、point2进行对比,如果是大于这个,代表是已经滚到下面了,所以要选择这个订单这样一个标签。接着就是选择第二个就是评价这一个,最后默认就选择1 推荐这个标签。这样的一种方式,这个代码我们已经解释完了。 接下来我们怎么样去用它? 首先是要引入脚本模块。看一下我们最终的源码,这个地方是一个引入,这是它的一个名字,这个名字我们可以自定义命名,也不一定叫这个名字,但一般情况下我们将这个名字跟我们当前页面的名称保持一致,我们要给用户主页使用所以这个也叫my就可以了。另外再查一下它在哪个地方使用的,这个地方对吧要有一个catchscroll,然后my.onScroll,这是模块里面导出的方法。这样去使用它,把这个代码拷贝一下,把它放在我们页面的最上方,同时我们要在下面在这个地方要添加catchscroll,这个里边写法跟我们JS代码层的写法有点不太一样。 JS的绑定比如说我们看另外的一个绑定,它这个地方其实是不需要写小胡子语法的,但是我们WXS脚本它其实需要写的,这个地方要给它把这个名字给它写上my.onScroll这样就可以了,代码已经写完了 接下来我们编译一下。看一下它的一个执行结果,然后页面让它向上滚动,滚到这个地方,我们可以看到评价现在已经拥有了一个高亮的样式。因为下面在这个地方评价已经崭露头角了,它的内容已经开始呈现了,然后再往下 订单这个区域开始显现的时候,订单又开始有了高亮的样式,往上滚动其实也是一样的,这是我们实现的。为了查看它效果怎么样,我们可以打开我们的性能面板Performance面板把之前的一个结果给它清空掉,然后我们开始录制。录制的时候,现在我们进行滚动 ,滚动的时候它会触发我们代码的一个变化,代码的执行,然后再停止。 然后我们可以看它触发这个代码它的一个执行的效率怎么样。这有一个Task,Task它执行时间大概是3点多少9.84。9.84毫秒这个时间还是相当短的,这个效率是可以的。我们可以再清空一下,然后接着再重新录制一下,为了让它不受其他的影响,最好我们开始录制的时候到我们录制结束,这个中间我们只需要去执行想要检测的效果。因为我们现在要检测wxs脚本,所以我们只需要在这个地方滚动然后触发它这三个标签的样式的一个变化就可以了,其他的我们可以先不管。然后停止,停止以后它时间轴它跟flash时间轴是一样的,就是在左手边那个位置它是最新的。 前面我们可以看到有很多,这是我们页面加载的时候有很多需要优化的点,所以它有很多的红三角对吧。然后后面这个才是我们最近的一个,如果我们对这个不太确定的话,可以去掉之后,然后不要点中间这个。因为刚才我们误点了,误点以后就相当于是你小程序页面重新加载了,然后重新从开始然后去测试它这个性能,这个测试点就多了。现在我们重新点一下,只需要测这个 让它动画编译一下以后,然后就让它停止。停止以后,因为我们这个测试时间很短,我们就看小山丘,看它这个时间几不可见,基本上看不到,看不到就说明什么,就说明它执行的时间太少了,可以忽略不计了。效率上绝对是没有问题的,这就是我们关于实践三的一个演示。 最后我们总结一下,在小程序中实现动画,如果是单单实现动画的话第一推荐的是关键帧动画,因为它简单方便易操作,接口也比较容易调用。如果动画是滚动事件 响应式的这样的一种动画,我们可以在调用animation方法的时候加上ScrollTimelineObject这样的一个参数,然后规定联动的对象以及它的参数范围这样一种方式去实现响应式动画,对于高频动画我们可以使用WXS脚本改写,它的优点是高效,缺点是目前能力有限,我们看到了它目前只支持ES5的语法,ES6语法目前在里面是无法使用的,现在你在屏幕上看到的是我们本节课涉及到的一些官方文档,这节课我们就讲到这里。 这节课我们主要学习了小程序四种实现动画的方式,其中以wxs脚本动画最高效,以关键帧动画最好用。那下节课我们学习自定义组件的优化技巧。 这里有个问题请你思考一下:将页面上的一部分功能抽离为单独的一个组件,仅是软件在模块化设计思想上的一种体现吗?有没有其他方面的一个好处呢? 这个问题留给你思考一下,我们下节课一起来深入探讨一下这个话题。 点击查看开放文档: Animation小程序框架 /视图层 /动画WXS响应事件
2022-07-13 - 如何获取用户信息:登录、获取手机号、收货地址
[视频] 第一部分,是用户使用小程序所需的基础能力。现在假设我一个用户,我打开了一个小程序,如果我需要登录,那小程序会请求获取我的微信登录标识,也会请求获取我的头像,来完善我的个人资料。对我来说,我可以选择提供真正的微信头像,也可以提供一个虚拟头像。这里我们在说的是小程序快速登录、头像昵称填写的能力。 如果是在电商消费、门店购物的场景,我要买东西,商家会需要知道我的手机号,以便给我发通知,也需要我填写收货地址,这时,小程序开发者可以使用获取手机号、获取收货地址的能力,用户无需输入,只需要点一下,确认授权即可,对用户来说很方便,也能减少小程序的流失率。 对咱们商户来说,这几个基础能力很重要,是我们理解用户的开始,我们可以将用的手机号、unionid及用户标签保存在自己的数据库内,对后续个性化营销、服务都很有帮助,这几个能力的接入文档在下方,欢迎查看。快转发给你的同事或服务商,打开接口文档,看看如何接入这些能力。 小程序快速登录小程序头像昵称能力获取手机号获取收货地址
2022-09-07 - 小程序迁移服务类目及插件问题指引
一、小程序迁移添加服务类目注意事项: 1、小程序迁移后,原有服务类目会全部失效,须用目标主体的资质重新提交服务类目审核。 2、小程序迁移成功后需在7天内,完成新代码版本审核及上线,小程序迁移成功7天后,如果线上代码和申请服务类目不符,相关的API权限将失效且有代码被下架的风险。 温馨提示:小程序开放开放服务范围类目请“点击此处 ”查看小程序企业开放的服务范围类目。 二、插件注意事项: 1、小程序迁移在选择服务类目时必须选择原帐号内已有插件的服务类目,若目标主体的资质申请不到该插件的服务类目,则本次迁移失败。 2、小程序迁移目标主体提交申请时添加的服务类目没有包含原帐号插件所需的服务类目,则不支持提交申请。 3、服务类目提交审核后,若目标主体经营资质不符合插件需要的服务类目要求,用户可选择以下2种方式: a、补齐该服务类目所需要的资质文件,通过审核 b、选择终止本次迁移
2020-04-23 - 小程序迁移,AppId、AppSecret、openid、unionID的变化情况?
小程序迁移,AppId、AppSecret、openid都不会变,unionID会视情况而定: 1、如果只是单纯的小程序迁移,不涉及open帐号变化,unionID就不会变。但是有可能会因为主体改变而影响unionID的获取逻辑,请开发者根据实际情况调整UnionID的获取方式。 2、如果涉及到open帐号变化,unionID就会改变,因为unionID就是根据open帐号的信息直接计算出来的。
2019-11-20 - 服务商搜索说明
服务商搜索说明 一、什么是服务商搜索? 微信小程序服务商为小程序生态提供服务支持,如果你有寻找服务商帮忙开发小程序的需求,如果你想了解已对接服务商的详情,可以在此进行搜索: -可帮助有小程序需求的商户/品牌方快速找到适合自己的服务商; -为商户/品牌方和服务商之间搭建沟通桥梁; -帮助服务商与服务商之间资源共享强强联合; 二、什么是小程序服务商: 任何有意愿为小程序提供开发服务的开发者/企业都可以成为小程序服务商。 微信不会区别对待,也无官方授权的概念,小程序团队会针对不同发展阶段和类型的服务商提供针对性的服务。 三、面向服务商: 目前,满足以下条件的服务商,即可在服务商搜索中被用户搜到: 1. 具有第三方平台的平台型服务商; 2. 在微信开放社区中具有关联第三方平台的企业主页; 上述条件中,“第三方平台”应满足: (1)服务商业务活跃性:短期内授权一定数量的小程序,并发布上线; (2)小程序活跃度:已上线的小程序保证持续用户活跃; (3)服务商小程序预审能力:无不良审核记录。 3. 两个自然周内,单个服务商累计7天符合要求,可在下两个自然周内被搜出; 如需查询第三方平台信息,可以登录微信开放平台(open.weixin.qq.com),进入“管理中心—第三方平台”进行查看; 注意:第三方平台需要全网发布并审核通过 如需在企业主页绑定第三方平台信息,可以微信开放社区(developers.weixin.qq.com),创建企业主页关联第三方平台appid。 创建企业主页可参考:https://developers.weixin.qq.com/community/develop/doc/000286982bc358be39578961f51008 注意:创建企业主页过程中,需填写第三方平台appid进行关联。 定制化服务商,纳入服务商搜索范围将陆续开放,请持续关注官方信息。 微信团队
2018-12-21 - 小程序跳转小程序功能调整通知(2)
各位开发者: 大家好。 现有小程序跳转相关调整同步给大家,请大家及时调整。 对于新发版的小程序,小程序跳转小程序功能调整已生效,具体如下: -11月6日17时起,通过小程序管理后台(mp.weixin.qq.com)发布上线的小程序 -11月13日15时起,使用第三方平台接口发布上线的小程序 如使用了跳转其他小程序功能,则需要在代码配置中声明将要跳转的小程序名单,限定不超过10个。该名单可在发布新版时更新,不支持动态修改。 本次调整涉及, 小程序的接口: wx.navigateToMiniProgram 接口 navigator组件 小游戏的接口: wx.navigateToMiniProgram 接口 详细需求背景可以参考 《小程序跳转小程序功能调整通知》 ,请开发者及时检查确认线上业务是否正常。 对于未更新版本的小程序,微信将在11月22日起限制可跳转小程序的数量。 即从指定日期(2018年11月22日)开始统计,允许每个小程序打开最多10个不同的小程序,超出10个的将不再允许打开新的小程序。请开发者及时更新和适配。 微信团队 2018.11.14
2018-11-19 - 邀请各位开发者来社区分享文章
各位开发者: 大家好。 为了给大家创造一个良好的经验分享交流平台,我们新增了“文章分享”的模块,希望大家可以将设计、开发和运营的小程序经验分享给更多的用户,将大家平时积累的经验分享出来,也沉淀下来。 我们鼓励优质内容的产生,对于优质的文章,会被选为精选,精选文章会逐步在社区首页展示,并且每周依次在开发者的公众号被推送。 文章被点赞、收藏、选为精选也会被列入每个月社区突出贡献者的评选。 我们期待在社区可以看见大家知识的分享,看见大家的智慧和力量。 PS:对于大家以前写的经验分享,欢迎大家迁移到新的文章板块。 微信团队 2019.02.20
2019-02-20 - 身份证注册微信开放平台提示到达上限
一个身份证号只能绑定一个open帐号,在公众平台安全助手里面可以查询已绑定的帐号。登录微信开放平台帐号,可以更换管理员,更换成功后,原管理员的身份号信息就会解绑。
2019-11-20 - 刚接到个电话,说我快递掉河里了
等待快递就像等待爱情,每一秒都是期待与煎熬。 只是,快递有它自己的想法—— [图片] [图片] △“再见了妈妈,今晚我就要远航” [图片] △R.I.P [图片] △热心市民深藏功与名 但大部分快递都没有这样的旅程,更多快递只是平凡地在路上,等着送到你手中。然而,有骗子却瞄准了这个空档。 近日来微信冒出批量快递理赔的帐号,冒充快递公司理赔中心工作人员以电话、短信形式联系用户,引导用户关注公众号。下面是一个真实的案例: 谢先生接到了一通自称是某快递公司客服的电话,称他的货品被寄丢了,并报出了订单号和个人信息。谢先生立刻对对方的身份确信不疑,按照指示,在微信上关注了一个名为“XX快递助手”公众号。 [图片] 按照公众号内的指示操作后,就跳转到了一个与某移动支付平台的登录页长得一模一样的界面。 [图片] 谢先生“登录”了个人帐号后,输入了绑定的银行卡账号密码,和手机上收到的短信验证码。 几分钟后,却发现银行卡内的几千余元全部被转走了! 事实上,这是一个假冒的登录页面,用户在输入帐号和密码的同时,骗子就已经悄悄把信息收集起来了。验证码是银行卡的最后一道防线,谢先生输入验证码之后,银行卡就成为骗子的囊中之物了。 目前,微信公众平台正在专项打击、清除此类公众号。据已处罚的数据来看,这类诈骗号都不是官方主体,且套路大多与上述案例中一致。 识别此类骗术,保护个人信息、财产等安全,有以下方法: 1、遇到退货或者是快递丢失的情况,请及时拨打购物平台、快递公司官方客服电话进行确认。 2、任何理赔,都不会通过个人微信号进行,因此请不要打开安全性未知的第三方链接,谨防钓鱼、木马病毒等。 3、银行发来的短信验证码只有本人能掌握,请不要在任何情况下泄露给陌生人。 最后,如果大家发现此类公众号,欢迎通过右上角“…”-“投诉”-“欺诈”进行投诉,帮助我们一同建立安全的微信环境。 [图片]
2020-03-18 - 小程序分阶段发布功能介绍
为便于小程序开发者灵活管理小程序版本,同时减少新版本出现缺陷对线上服务造成的影响,小程序开发者发布新版小程序时,可根据自身需求选择“全量发布”或“分阶段发布”。” 入口:小程序管理后台-开发管理-审核版本(已通过)-提交发布 [图片] 发布流程说明 步骤一:选择发布模式 开发者可根据自身业务需求,选择“全量发布”或“分阶段发布”。 全量发布:即时向全量微信用户发布新版小程序。 分阶段发布:新版小程序将在15天内以开发者自定义的比例,向微信用户发布更新。 [图片] 步骤二:选择发布比例 开发者可根据需求填写发布比例。发布后,将有该比例用户使用新版本小程序。 [图片] 步骤三:确认版本信息后确认分阶段发布。 [图片] 步骤四:提升发布比例/撤销分阶段发布。 提升发布比例:开发者可根据线上使用情况,逐步提升发布比例。 撤销发布:如分阶段发布中的版本出现重大问题影响线上服务,开发者可选择撤销此版本的发布。 [图片] 分阶段发布小程序相关规则 1.开发者必须在15天内全量发布/撤销发布。如开发者在首次发布后15天内未撤销发布,平台将在第15天全量发布小程序新版本。 2.开发者可递增调整分阶段发布的用户比例。开发者也可撤销分阶段发布,若撤销发布当前版本,所有用户将使用小程序上一个全量发布的线上版本。 3.若存在正在分阶段发布的小程序版本,不可发布新版本、不可回退已全量发布的线上版本。 4.小程序第一个版本必须选择“全量发布”模式发布。 5.当线上版本的上一个版本是分阶段发布并已撤销发布,那么当前线上版本不可回退。
2020-03-18 - 社区每周 | 云开发新增自定义数据库读写权限及告警能力、上周社区问题反馈(11.18-11.22)
各位微信开发者: 以下是上周小程序相关能力更新及我们在社区收到的问题反馈、需求的处理进度,希望同大家一同打造小程序生态。 小程序·云开发新增自定义数据库读写权限的能力小程序·云开发新增自定义前端数据库读写权限的能力。通过自定义规则,开发者可以精细化的控制集合中所有记录的读、写权限,系统会自动拒绝不符合安全规则的前端数据库请求,保障数据安全。基于该能力,开发者可以: 1.灵活自定义集合记录的读写权限:获得比基础的四种基础权限设置更灵活、强大的读写权限控制,让读写权限控制不再强制依赖于 _openid 字段和用户 openid 2.防止越权访问和越权更新:用户只能获取通过安全规则限制的用户所能获取的内容,越权获取数据将被拒绝 3.限制新建数据的内容:让新建数据必须符合规则,如可以要求权限标记字段必须为用户 openid 开发者可通过下载最新 Nightly 版开发者工具体验功能。详细功能介绍请参考文档 《数据库安全规则》。 [图片] 小程序·云开发新增自定义告警能力为了方便开发者及时发现小程序运行过程中发生的异常,小程序·云开发新增自定义告警能力。开发者可以通过告警指标、统计周期、比较条件、持续周期和告警频率等参数的自由组合灵活地配置所需的告警规则。 开发者可通过下载最新 Nightly 版开发者工具体验功能。详细功能介绍请参考文档 《告警设置》。 [图片] 上周问题反馈和处理进度(11.18-11.22)已修复的问题腾讯提醒服务的问题 查看详情 为什么之前云开发可以用,突然就不能用了 查看详情 管理后台小程序插件配置服务器域名,无法添加多个域名的问题 查看详情 微信小店商品无法正常上下架的问题 查看详情 下个基础库修复scroll-view 滚动过程中无法点击 scroll-view 以外的区域的问题 查看详情 canvas 多次调用clip,iOS 端渲染结果有误的问题 查看详情 canvas 的 restore 会改动之前创建的路径位置的问题 查看详情 canvas 的变形操作在安卓和 iOS 表现不一致的问题 查看详情 修复中的问题picker 限制问题 查看详情 wx.onPageNotFound or App.OnPageNotFound 无法触发的问题 查看详情 华为 p10 中用微信打开 H5 页面,点击 select 下拉框,弹出的软键盘导致 H5 页面有空白的问题 查看详情 安卓机websocket 断网重连失败,报exception onOpen fail code:2 的问题 查看详情 小米多种input输入框 切换焦点时,键盘弹出有问题 查看详情 扫码进入小程序后退出再进入后不执行 lottie-miniprogram 的问题 查看详情 小游戏提审代码时服务器 -202报错的问题 查看详情 部分安卓机型调用同声传译插件疑似失效,报30008和30011错误的问题 查看详情 微信后台报错信息 undefined 如何定位具体位置的问题 查看详情 请问 iOS 小游戏闪退的问题 查看详情 小游戏发布在 iOS 上发现 drawcall 数据特别高,RenderBatch 不高的问题 查看详情 wx.sendSocketMessage 发送数据丢失空字符\x00 的问题 查看详情 安卓端可以显示图片,苹果端则时有时无的问题 查看详情 主包进独立分包,在独立分包分享后的再次 app onShow 中的参数里scene值为 null 的问题 查看详情 关于video组件是否自带黑边的问题 查看详情 告警群后台只报出 undefined undefined 的问题 查看详情 问一下分享图有时候会出现模糊的问题 查看详情 视频播放控件和测滑返回会冲突的问题 查看详情 微信小程序在安卓微信7.0.8下连 websocket 报错的问题 查看详情 获取图文群发总数据(getarticletotal) 的问题 查看详情 安卓微信7.0.9内测版,调用 wx.getImageInfo 加载同一图片多次会失败的问题 查看详情 使用推荐组件,竖屏游戏跳转横屏概率卡死的问题 查看详情 微信同声传译,语音转文字,打开调试可以使用关闭调试就不能使用的问题 查看详情 Mac开发工具相关的问题 查看详情 每次销毁视频广告都报错的问题 查看详情 需求反馈跟进迭代中安卓蓝牙提供改变 MTU 大小的接口的需求 查看详情 需求评估中普通 api 支持Promise风格的需求 查看详情 onShareAppMessage 支持 base64 的需求 查看详情 小程序样式切换动态主题皮肤的需求 查看详情 开放平台提交审核接口建议增加测试账号字段的需求 查看详情 强烈建议小程序添加重启功能的需求 查看详情 开发者工具的调试窗口如何设置停靠在窗口的左边或右边的需求 查看详情 小程序支持 svg 标签的需求 查看详情 wx.chooseVideo 开放在小游戏中的需求 查看详情 订阅消息弹窗相关的需求 查看详情 增加一个审核通过后定时发布的功能的需求 查看详情 关于开放社区需要优化的几点建议 查看详情 微信小程序支持录制短视频的同时在上面叠加烟花特效的需求 查看详情 希望官方能够重视小程序文档的建设,补全小程序开发文档的需求 查看详情 每日公众号图文数据能获取在看数的需求 查看详情 关于小程序开发能力的需求 查看详情 建议增加全局配置 HomeButton 选项的需求 查看详情 微信团队 2019.11.29
2019-11-29 - (5)小程序插件
背景 小程序插件简介小程序插件是可以被开发者添加到小程序内直接使用的,能为用户提供具体服务的功能组件。 插件开发者可像开发小程序一样开发插件,除了在自己的小程序内使用,还能提供给其他小程序直接使用。 插件使用者无需独立开发小程序内的所有服务,无需理解插件内部逻辑和实现方式,可直接使用别人开发好的插件,为用户提供相应服务。 推出小程序插件的原因小程序的初衷是希望更好地连接用户和服务。自上线以来,越来越多的商户、开发者开发自己的小程序。 早晨起来在小区电梯内,扫小程序码,即可叫个早餐外卖; 走到门口,扫共享单车的二维码,骑车即走; 到了公司,即可打开小程序轻松打卡,开始美好的一天上班生活…… 随着小程序的普及,越来越多的路边小摊、餐饮小店、夫妻店也希望接入小程序。许多商家会给我们留言: “我只会简单开发,不会做复杂的功能怎么办?” “我也想给餐馆小程序做一个预约订餐功能,要怎么搞?” “客户可以在我的小程序里查询快递信息吗?” “我没有数据,可以在小程序里做地图查找功能吗?”…… 我们总结出大家目前遇到的几个难题: 1.开发技术有限,实现复杂功能难度大 2.人力、设备、资源有限,实现服务成本高 3.缺乏某些类目的资质,如电商、打车 小程序插件的应用1.开发共享,避免重复开发 在小程序内使用插件,可免去小程序开发者重复开发,一定程度上减少了开发工作量。 如:在旅游景区的小程序可以使用地图插件,开发者无需在小程序内独立开发地图内导航、出行指引、周边服务推荐等能力,直接使用地图插件即可为用户提供导航服务,免去很大量的开发工作。 2.插件可提供针对行业的完整服务,同时覆盖线上线下 商家希望借助小程序更好地连接用户和服务,包括线上、线下服务。线下服务往往人力成本、硬件设备等要求较高,商家在小程序内提供完整服务的门槛较高。而插件不仅可以解决线下服务的问题,还能针对特定行业提供全套完整服务。 以景区服务小程序为例,使用门票购买插件,用户可在小程序内完成门票线上预订、购买等流程,在到达景区后,通过插件服务提供商提供的移动终端或硬件设备,可完成门票兑换、核销。 而对于餐饮、零售等线下行业而言,插件更是极大降低了商家的成本,商家可以使用预订、排队、外卖等插件,由插件开发者提供线下服务,商家只需在小程序内引用插件,即可使用由插件开发者提供的预订、外卖等服务,节省了成本。 3. 降低服务门槛的问题,实现“服务共享” 具有开发能力及服务资质的开发者,可将自己的服务封装成插件,提供给其他小程序使用,实现“服务共享”。 插件的技术原理插件本身的技术原理并不复杂。插件代码由一些自定义组件和 JS 代码文件构成,插件开发者在发布插件时,这些代码被上传到微信后台保存起来。 当小程序使用插件时,使用者需填写插件的 AppID 和版本号,以便从后台获取相应的插件代码。小程序代码编译时,插件代码会被嵌入到小程序中,与小程序一起编译运行。 小程序与插件的交互根据需要,插件代码可以提供 JS 接口或自定义组件供小程序调用。JS 接口可以用于界面无关的逻辑,自定义组件可以嵌入界面中展示。 对于插件使用者来说,插件的调用方法很简单。 1.使用插件 JS 接口 与普通 JS 文件间 [代码]require[代码] 的方式一样,只需要将[代码]require(FILE_NAME)[代码] 改成[代码]requirePlugin(PLUGIN_NAME)[代码] 这样的调用形式。 2.使用插件提供的自定义组件 与使用普通自定义组件的方法非常相似。在[代码]json[代码]文件的 [代码]usingComponents[代码] 段落中,按照[代码]plugin://PLUGIN_NAME/COMPONENT_NAME[代码] 的形式使用即可。 对于插件开发者而言,这里给出几点建议: 1.提供充分的接口文档和示例,方便插件使用者了解插件的使用方法; 2.注意保持插件不同版本间接口的稳定,使插件使用者能顺利升级插件; 3.计算小程序代码包大小时,插件代码也会一并计算在内,所以应当控制好插件代码的大小。 插件代码运行环境插件代码的运行环境与小程序代码有一定的区别,主要是以下两点: 1.插件可以发起网络请求的域名与小程序不同,因此插件开发者需要注意在插件后台的设置中正确配置网络请求域名。 2.插件可以调用的 API 有一定的限制,并不是所有的接口插件都可以调用,如页面跳转相关的接口是不允许插件调用的。插件开发者在使用一些特殊接口前,请查询文档中的插件可调用接口列表。 此外,目前一个小程序最多可使用5个插件,赶紧将插件用起来,节约开发者成本吧。 详情可参考《小程序插件接入指南》。
2018-08-17 - 微信证件OCR识别能力开放
微信证件OCR识别能力是微信团队推出的一套提升移动端快捷信息录入的工具,目前支持身份证、银行卡、行驶证、驾驶证、营业执照 OCR 识别。经过持续迭代优化,现在对外开放接入测试。 使用场景 微信证件OCR广泛适用于政务、医疗、交通、教育、金融等各行各业,涉及到需要用户输入身份信息、银行卡信息、车辆信息场景时,即可通过OCR识快速识别、输入信息,极大提高输入效率,提高用户体验。 以下为开通插件的部分小程序案例:国家发展改革委政务服务、安徽省统一公共支付平台、南航e行、湖南电信网上营业厅、中国国际航空、厦门航空、上海客运总站、沃尔玛、青岛银行信用卡等。以下是部分使用场景的截图: [图片] [图片] [图片] 业界领先的识别水准 微信证件OCR历经v1.0版本(基于传统的版面分析, 单字切分, 字符分类算法),v2.0 (基于深度学习的卡片定位, 文字定位, 单字切分, 字符分类),到现在的v3.0版本(基于深度学习的卡片定位, 文本行定位, 串识别),不断优化OCR的识别精度, 取得了业界领先的识别水准。可以轻松应对在移动端拍照/扫描的情况,诸如拍摄角度、光照、阴影、遮挡等的干扰。 可以扫码体验我们的demo小程序 [图片] 灵活易用的调用方式 目前有两种调用方式:小程序插件方式和云端API的方式。 对于对交互没特殊需求的开发者,可以直接使用我们的小程序插件;有订制化需求的,也可以直接使用我们的云端API方式;后续我们也会把这个升级成小程序的基础能力,做成类扫码的体验,进一步简化接入和调用流程。合作与开放 内测期间,对于已认证的订阅号、服务号、企业号、小程序,我们提供了 500 次/天 的免费额度供开发者使用。如免费额度无法满足使用需求,开发者可以【申请调整 OCR 接口调用次数上限】为主题,发送邮件至:wx_city@tencent.com 申请调整,并在正文中注明小程序帐号 AppID、业务主体、业务背景、服务流程载体、日调用量预估。调整的额度仅在内测期间有效。有任何意见或者反馈,都可以在微信开放社区上联系我们,以便于我们更加了解客户对OCR的需求精确度以及需求场景,从而不断迭代优化OCR版本,拓展OCR服务的范围,如支持更多的场景需求: 发票识别、名片识别、街景识别等等。 微信团队 2019/07/03
2019-09-19 - 春节期间小程序/小游戏审核调整通知
各位开发者,你们好! 小程序及小游戏代码审核将在2019年春节法定假期2月4日(除夕)至2月10日(初六)暂停审核。在2019年1月31日24点前提交的审核,审核团队将竭力在2月4日(除夕)前审核完毕。2月11日(初七)恢复审核后,将按提审时间顺序逐步审核春节期间提审单。 小程序的名称、类目、门店、小程序迁移、认证、插件审核,以及小游戏创意鼓励计划、运营素材等审核也将同步暂停及恢复审核。请开发者们合理安排提审时间,避免影响版本迭代。 预祝各位开发者春节快乐! 微信团队 2019-1-7
2019-01-31