通过编程模式起底小程序开发技术特点详解.docx

通过编程模式起底小程序开发技术特点详解.docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
通过编程模式起底小程序开发技术特点 从小程序诞生伊始,就有很多人开始研习小程序的机理和特点。但是真正理解小程序,还是需要一定的实践,才能进一步去理解小程序背后的一些想法,它和现有平台的一些异同,以及如何去适应它。 作者:范怀宇 轻芒联合创始人来源:作者投稿|2016-12-12 13:29 ?收藏 ??分享 从小程序诞生伊始,就有很多人开始研习小程序的机理和特点,从源代码的角度、从整体架构的角度,有很多不错的文章会令人受益。 但理论是一回事,真正理解小程序,还是需要一定的实践,才能进一步去理解小程序背后的一些想法,它和现有平台的一些异同,以及如何去适应它,做出更有趣的小程序。 小程序的编程模式 最近,我们在做「轻芒小程序+」和其它轻芒产品的小程序应用过程中,对小程序有了进一步的理解,进而有了本文。 去理解一个开发平台的特性,一个不错的角度就是从编程模式入手,就是看在这个平台上去开发,需要如何书写和组织自己的代码,进而搞清楚三个问题: ? 数据如何获取 ? 界面如何呈现 ? 交互如何传导 换而言之,就是从 MVC(Model-View-Controller)的视角去拆解这个平台的特性,从而理解在这个平台上开发有何特点。 数据如何获取? 程序的本质,可以说就是数据的呈现和加工。所以,看一个客户端开发平台的基本能力,首先,就要看能把哪些数据放在上面处理,有哪些局限性,如果缺少了必要的数据获取方式,那对于开发者而言,巧妇也难为无米之炊。 从这点看,小程序是提供的数据获取方式算是非常丰富了,大概涵盖: 通过 Https 请求去服务端获取数据。支持 Http 是最基本的,小程序对 Http 有限制,除了要求通信协议是 Https,出现的域名必须提前预设之外,还将应用层协议限定到了 Json 格式下,这一点,可能比任何一个已有客户端平台更为严苛。站在小程序的平台角度来看,通过这样的协议规定,对应用中流动的数据有了更强的管控能力;而对于开发者而言,则需要花些时间去调整自己的服务协议以便适应小程序的要求。 可以在本地文件系统上存取数据。小程序提供了算是丰富的 APIs 供开发者在手机系统上存取文件。开发者可以本地文件来做缓存、做状态记忆,等等,为开发提供了不错的便利。 可以读写设备中的一部分信息。小程序开放了一些 APIs,帮助开发者获得设备上的一些基本信息,比如:手机型号、屏幕尺寸,网络状态,等等。比较有价值的,是可以选择获取手机上的图片等多媒体文件,这给做一些图像相关的应用提供了可能性;以及它还提供了不少设备上罗盘、重力感应器、地理位置等相关的信息,对开发者理解用户所处的环境有很大帮助。 从上面的介绍不难看出,小程序中的数据获取方式,和一般的浏览器提供的相仿(也就是和做 Html5 应用能获取的信息),比原生的客户端更局限一些,但对于绝大多数的应用而言,是足够用了。 除此之外,?小程序提供了微信生态中的一些数据,比如账号信息。这对于微信庞大的生态而言,只是非常小的一部分数据,但确是开发小程序应用中最值得利用的一部分数据。 举个例子,在其它平台上,如果需要获取到微信的账号信息,需要通过一次用户授权。如果用户暂时不想提供,则会使得程序出于 “未登录” 状态,给整个服务的展开带来困难。而在小程序中,只要用户点开小程序,就意味着完成了授权,开发者可以直接读取到小程序的账号信息,并可以同步到自己的服务端作为该用户的身份标识,从而实现 “始终登录” 的状态,使得后续服务可以更好的提供。 一份可行的示例如下: 1. //?先调用登录接口,获得请求码? 2. ? 3. wx.login({? 4. ? 5. success:?function?(res)?{? 6. ? 7. //?获取到请求码,继续请求用户的基本信息? 8. ? 9. var?code?=?res.code? 10. ? 11. wx.getUserInfo({? 12. ? 13. success:?function?(res)?{? 14. ? 15. //?获取到了加密的用户信息,去服务端解密并存储? 16. ? 17. var?userData?=?res.encryptedData? 18. ? 19. var?iv?=?res.iv? 20. ? 21. wx.request({? 22. ? 23. url:?https://my_account/...,? 24. ? 25. data:?{? 26. ? 27. code:?code,? 28. ? 29. user_data:?userData,? 30. ? 31. iv:?iv? 32. ? 33. },? 34. ? 35. success:?function(res)?{? 36. ? 37. //?在服务

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档