STAY HUNGRY , STAY FOOLISH.

求知若饥,虚心若愚。

       浏览:

初识小程序

由于公司需要,希望能尽快推出公司自己的微信小程序,我方必须加足马力,拼了这一战。

1.什么是微信小程序

话说知其然知其所以然,研发一个微信小程序出来,必须先理解什么是微信小程序。说到这,不得不提到微信的订阅号、服务号、企业号?

微信公众平台之前有3种公众号:企业号、订阅号、服务号,现在新来个小程序
微信分类

说下这4种的区别:
企业号:一般企业用于内部业务使用的
订阅号:以内容为主,解决用户阅读需求,每天可群发1次
服务号:以功能为主,满足低频服务需求,每月可群发4次
小程序:以便利为主,定位在高频使用场景,有着“用完即走”的理念。

那究竟什么是微信小程序呢?
我认为微信小程序是一种像 App Store 的app应用,专业点的说法就是小程序是一个独立生态


2.对比苹果与微信

苹果 App Store 的生态结构:
苹果

1.苹果是大平台
2.统一入口是 App Store
3.统一用 Swift 或 Obj-C 语言进行开发
4.苹果对 UI、运营等方面有严格的规范
5.苹果与开发者分成收入

我们再来看看微信小程序的生态结构:
微信

1.微信是大平台
2.统一入口是微信 app
3.统一用小程序语言进行开发
4.微信小程序提供详细的 UI、运营等规范
5.目前还未与开发者分成收入,但以后有这个可能性


3.小程序的特点

1.无需安装,无需关注

小程序和App不同,不需要用户安装,只需用户搜他需要的小程序,进入即可。
小程序也和服务号、订阅号不同,是不需要用户关注的,减少用户的心理压力。

2.体积少,安装包不超过1M

微信明确小程序安装包不能超过1024K,这意味着能将用户的流量可以直接用4G去使用,而非必须要WIFI。

3.还是HTML页面

微信小程序虽然不同于传统的HTML页面,微信定义了新的文件格式,然后对这些文件做编译解析。
我们可以通过js去调用原生的东西,如设备、音频等,开发微信小程序其实就是在定制版的webview上画HTML页面。因此,微信小程序采用Hybrid模式,严格意思上讲并不是原生应用,还是HTML页面。

如何证明是HTML页面而非原生页面,最简单的理由就是微信自发的web开发者工具。
1.当我们完成研发后,点击预览后会生产一个二维码。二维码其实就是一个看不到URL的链接,扫码后相当于自动跳入了该链接,得到的当然还是HTML页面。
2.假如真的是原生应用,那么用户每次进入小程序后都进入个原生UI的应用?假如真的是原生UI的应用,小程序成千上万那么多,安装微信App岂不是要1G还不止,也违背了小程序“用完即走”的理念。

开发者

4.不能操作DOM

微信将小程序分成视图层和逻辑层。
a)视图层
框架的视图层由 WXML 与 WXSS 编写,由组件来进行展示。
WXML(WeiXin Markup language)用于描述页面的结构,WXSS(WeiXin Style Sheets)用于描述 WXML 的组件样式。

b)逻辑层
小程序开发框架的逻辑层是由JavaScript编写。
由于框架并非运行在浏览器中,所以 JavaScript 在 web 中一些能力都无法使用,如 document,window 等

因此,小程序是由WXML、WXSS、JS构成,当然这些东西看起来有点像HTML、CSS、JS,但是一定要记住:请不要以之前用JQuery、Zepto的思想去制作小程序,因为JS已经不能直接操作DOM去改变样式和传值

5.没有外联

因为已经不能再使用HTML标签,这意味着,你无法在小程序里放置外链。HTML里的a、iframe标签是被禁止的。
因为已经不能再使用JS里面的document、window原生JS,这还意味着,你无法使用location.href或者history.go跳转到外部的页面。
一句话总结就是:只能在当前的微信小程序里面跳自己写好的页面

6.无法分享到朋友圈

当前版本的小程序是不支持分享到朋友圈的,你可以将小程序的任何页面分享给通信录的个人或群,但无法分享到朋友圈,这意味着你不会在朋友圈看到小程序刷屏。

7.支持离线使用与 Websocket

微信小程序支持离线使用,也支持后台运行,这为小工具和其他及时业务带来想象力。

8.有严格的审核机制

小程序的每个版本更新,都必须通过微信审核,就像 App Store 那样。


4.微信小程序在浏览器上调试

上面说到微信小程序不能直接在浏览器上去调试和执行,理由很简单,差个对其文件做编译解析的东东
微信因为定义了新的文件格式,W3C并没有其相关的规范去支持,浏览器当然看不懂。
想让浏览器看懂微信小程序,使用**wept**即可。