小程序开发攻略:问题或限制、http2支持情况

2018-09-0713:17:02APP与小程序开发Comments6,247 views字数 1554阅读模式

小程序的问题或限制

截止20180810文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/4460.html

包含但不限于:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/4460.html

  • 小程序仍然使用 WebView 渲染,并非原生渲染。(部分原生)
  • 服务端接口返回的头无法执行,比如:Set-Cookie。
  • 依赖浏览器环境的 JS 库不能使用。
  • 不能使用 npm,但是可以自搭构建工具或者使用 mpvue。(未来官方有计划支持)
  • 不能使用 ES7,可以自己用babel+webpack自搭或者使用 mpvue。
  • 不支持使用自己的字体(未来官方计划支持)。
  • 可以用 base64 的方式来使用 iconfont。
  • 小程序不能发朋友圈(可以通过保存图片到本地,发图片到朋友前。二维码可以使用B接口)。
  • 获取二维码/小程序接口的限制。
    • B 接口 scene 最大32个可见字符。
    • AC 接口总共生成的码数量限制为 100,000,请谨慎调用。
    • 真机扫描二维码只能跳转到线上版本,所以测试环境下只可通过开发者工具的通过二维码编译进行调试。
    • 没有发布到线上版本的小程序页面路径会导致生成二维码失败,需要先将添加了页面的小程序发布到线上版本。
  • 小程序推送只能使用“服务通知” 而且需要用户主动触发提交 formId,formId 只有7天有效期。(现在的做法是在每个页面都放入form并且隐藏以此获取更多的 formId。后端使用原则为:优先使用有效期最短的)
  • 小程序大小限制 2M,分包总计不超过 8M
  • 转发(分享)小程序不能拿到成功结果,原来可以。链接(小游戏造的孽)
  • 拿到相同的 unionId 必须绑在同一个开放平台下。开放平台绑定限制:
    • 50个移动应用
    • 10个网站
    • 50个同主体公众号
    • 5个不同主体公众号
    • 50个同主体小程序
    • 5个不同主体小程序
  • 公众号关联小程序,链接
    • 所有公众号都可以关联小程序。
    • 一个公众号可关联10个同主体的小程序,3个不同主体的小程序。
    • 一个小程序可关联500个公众号。
    • 公众号一个月可新增关联小程序13次,小程序一个月可新增关联500次。
  • 一个公众号关联的10个同主体小程序和3个非同主体小程序可以互相跳转
  • 品牌搜索不支持金融、医疗
  • 小程序授权需要用户主动点击
  • 小程序不提供测试 access_token
  • 安卓系统下,小程序授权获取用户信息之后,删除小程序再重新获取,并重新授权,得到旧签名,导致第一次授权失败
  • 开发者工具上,授权获取用户信息之后,如果清缓存选择全部清除,则即使使用了wx.checkSession,并且在session_key有效期内,授权获取用户信息也会得到新的session_key

小程序HTTP2支持情况

HTTP2支持情况:模拟器与真机均不支持

为了验证小程序对HTTP的支持适配情况,我找了两个服务器做测试,一个是网上搜索到支持HTTP2的服务器,一个是我本地起的一个HTTP2服务器。测试中所有请求方法均使用 wx.request文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/4460.html

  1. 网上支持HTTP2的服务器:HTTPs://www.snel.com:443
  2. 在Chrome上查看该服务器为 HTTP2
    小程序开发攻略:问题或限制、http2支持情况
  3. 在模拟器上请求该接口,请求头的HTTP版本为HTTP1.1,模拟器不支持HTTP2
    小程序开发攻略:问题或限制、http2支持情况
  4. 由于小程序线上环境需要在项目管理里配置请求域名,而这个域名不是我们需要的请求域名,没必要浪费一个域名位置,所以打开不验证域名,TSL 等选项请求该接口,通过抓包工具表现与模拟器相同
    小程序开发攻略:问题或限制、http2支持情况

HTTP2服务器需要对小程序做兼容性适配

由上可以看出,在真机与模拟器都不支持 HTTP2,但是都是成功请求的,并且 响应头 里的 HTTP 版本都变成了HTTP1.1 版本,说明服务器对 HTTP1.1 做了兼容性适配。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/4460.html

  1. 本地新启一个 node 服务器,返回 JSON 为请求的 HTTP 版本
    小程序开发攻略:问题或限制、http2支持情况
  2. 如果服务器只支持 HTTP2,在模拟器请求时发生了一个 ALPN 协议的错误。并且提醒使用适配 HTTP1
    小程序开发攻略:问题或限制、http2支持情况
  3. 当把服务器的 allowHTTP1,设置为 true,并在请求时处理相关相关请求参数后,模拟器能正常访问接口,并打印出对应的 HTTP 请求版本
    小程序开发攻略:问题或限制、http2支持情况

 文章源自菜鸟学院-https://www.cainiaoxueyuan.com/xcx/4460.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/xcx/4460.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定