0%

小程序特性

一、小程序架构

1581136330(1)

  • 视图层和逻辑层分离,通过数据驱动,事件交互,不直接操作DOM
  • 视图层负责渲染页面结构,逻辑层负责逻辑处理、数据请求、接口调用等
  • 视图层与逻辑层通过数据和事件进行通信,逻辑层提供数据给视图层,视图层通过绑定/捕获事件发起交互让逻辑层处理
  • 视图使用WebView渲染,JS由JSCore(IOS)/X5(Android)/nwjs(DevTool)渲染解析
  • JSBridge下架起上层开发与Native(系统层)的桥梁,使得小程序可通过API使用原生的功能,且部分组件为原生组件实现,从而有良好体验

二、小程序版本

  • 开发版
  • 体验版(需要在小程序管理平台里添加体验用户才可以使用)
  • 正式版

三、限制

  • 页面层级跳转不能超过10层。
  • 用户本地缓存不能超过10MB。
  • 小程序代码包不能超过3M,所以部分图片资源需上传CDN。
  • 小程序发布需提交微信审核通过才可发版。
  • 提交审核前,外网域名需申请(除微信域名之外)。

四、基础库版本

小程序的能力需要微信客户端来支撑,每一个基础库都只能在对应的客户端版本上运行,高版本的基础库对应的api不支持低版本,所以在使用这些新能力的时候需要做兼容。

五、缓存机制

同一手机,不同小程序应用,至少在逻辑存储上肯定不是共享缓存,满足应用级别隔离。
同一手机,同一个小程序,不同微信用户扫码使用,经测试,也不共享缓存,目前测试条件下,是用户级别隔离。
同一手机,同一个小程序,同一微信用户两次扫码使用,经测试,是共享缓存。
同一手机,同一个小程序,不同微信用户切换使用(分别扫码两次),经测试,同一个用户共享缓存,不同用户间不共享缓存。

六、海报页

可生成定制的海报页,用于分享朋友圈。
任何版本生成的海报页,扫码都跳转到正式版落地页,可借助【小程序码测试工具】跳转相应页面。
二维码数据和图片为动态生成过程,不像那种固定图片的可以预加载。

六、微信openId和UnionID区别

同一公司下多个公众号之间需要用户帐号互通,微信开放平台提供了UnionID机制。
通过获取用户基本信息接口,开发者可通过OpenID来获取用户基本信息,而如果开发者拥有多个公众号,可通过UnionID在多公众号之间进行用户帐号互通。
在不同的公众账号下OpenID是不一样的,而他们的UnionID却是一样的。
UnionId和uid是对应关系;OpenId和sourceId是对应关系。