微信小程序开发学习笔记(一):概览

作者:李佶澳  更新时间:2019-06-28T23:41:00+0800

  项目    小程序    刷新

本篇目录

说明

小程序学习笔记计划都更新到: 这里

技术本质

2015 年,微信发布了一整套网页开发工具,开放了拍摄、录音、语音识别、二维码、地图、支付、分享、卡券等几十个API,在微信的 WebView 中运行的页面,可以调用的微信原生组件的 JS API,后来演变成了小程序。

微信小程序开发

虽然小程序等开发过程类似于网页开发,但是它本身已经不是传统意义上的网页,更像是托管在微信上的应用,与微信的结合更紧密,发布修改需要经过微信的审核。

参考:小程序技术发展史

运行环境             逻辑层             渲染层
iOS                  JavaScriptCore     WKWebView
安卓                 V8                 chromium定制内核
小程序开发者工具     NWJS               Chrome WebView

变现方式

流量主获取广告收益,不需要认证,开通条件如下:

  1. 累计独立访客(UV)不低于 1000
  2. 没有严重的违规记录

小程序内增值服务,已经认证的小程序可以申请微信支付,在 IOS 系统上不能展示、提供购买、支付功能。

开发工具

微信提供了 sketch 和 PS 格式设计组件,可以直接使用: 微信小程序设计UI组件

Sketch 是一个矢量绘图设计工具, 使用方法见:矢量绘图工具 Sketch 的基本用法

开发者工具才是重点,微信提供了专门用于小程序开发的 IDE, 代码编辑、调试、辅助工具等都有,可以实时预览,支持 Windows 和 macOS: 微信开发者工具下载

可用资源

开发小程序可以使用的资源有:小程序开发框架小程序前端组件小程序前端交互 API小程序服务端接口云端运行的计算存储资源

前端组件

组件内容角度,直接阅读 组件文档

计划单独写一篇笔记。 2019-06-12 23:33:07

交互 API

交互 API,直接阅读 API 文档

计划单独写一篇笔记。 2019-06-12 23:33:11

服务端 API

服务端 API 文档

计划单独写一篇笔记。 2019-06-12 23:33:16

云开发资源

微信提供了专门用于小程序的云服务,不需要自己维护服务器、创建服务,可以直接使用云函数、数据库、存储、云调用等接口:云开发

云开发提供了四种能力:数据库、云存储、云函数、云调用。

云开发还提供了 HTTP 接口,开发者可以在自己的服务器上调用云开发的功能:云开发 HTTP API 文档

数据库

云开发提供的数据库是 json 文档数据库,支持条件查询、结果排序等。

  1. 小程序端和服务端的访问权限能够分开设置,支持设置只能被数据创建者访问的权限(这个很强大,数据访问权限不用自己实现了,配置下就可以了);
  2. 通过服务端访问数据库,是指云函数访问,云函数拥有的是管理员权限,可以操作所有数据;
  3. 批量修改只能通过云函数进行;
  4. 支持按照 json 对象的某个字段值(包括数组类型的值)查询;
  5. 支持索引,单字段索引可以用”点”表示嵌套的字段,单索引的排序和查询指定排序无关,数据能正确排序;
  6. 组合索引包含多个字段,多个字段组合的任意前缀命中组合索引,字段顺序是组合索引的一部分,顺序不同索引不同;
  7. 组合索引的字段排序和查询指定的排序相关,指定排序要么每个字段都和组合索引的字段排序相同,要么都相反;
  8. 索引可以设置唯一性,即不允许在相同的索引;
  9. 支持地理位置数据类型,使用地理位置查询时,必须建立地理位置索引;
  10. 微信开发工具支持数据的导入导出;
  11. 支持 orderBy,有相关的 API。

数据库 API 分为小程序端和服务端:小程序端数据库 API服务端数据库 API

存储

云开发提供非结构化的云存储,支持文件夹、文件和目录搜索、权限设置、临时连接(有效期 2h),可以用 image、audio 等组件直接导入。

文件名编码长度最大为 850 个字节,不能以 / 开头,不能有连续的 /,特殊字符不要用,中文按照 URL Encode 规则转化,建议用大小写字母、数字和富豪 “-、!、_、.、*“组合。

存储的 API 比数据库简单多了,但同样分为小程序端和服务端: 小程序端存储 API服务端存储 API

云函数

云函数就是在云端运行一个或者多个程序文件,占用 CPU 和内存资源,云函数完全独立部署,可以分别部署在不同的地区,云函数可以互相调用。

  1. 云函数用 js 编译,在云端的 node.js 中运行;
  2. 云函数和微信登陆鉴权无缝结合,开发者不需要再校验 openid;
  3. 可以使用 npm 安装的第三方依赖,依赖可以在云端安装也可以上传 node_modules 文件夹;
  4. 云函数可以在本地调试;
  5. 云函数可以设置为定时触发;
  6. 云函数是幂等、无状态的,单次调用过程中可以使用 /tmp 目录的 512MB 临时磁盘空间(调用完成后可能被销毁);
  7. 云函数的运行环境是 CentOS 7.2 (2019-06-09 19:17:22),以后可能会变,云函数实现不能依赖特定的操作系统;
  8. 云函数的根目录通过 __dirname 获取,可以在从根目录中获得上传的云函数文件;
  9. Node.js native 依赖需要在对应的平台下编译后上传,必须是 Linux 平台,最好是 CentOS 7,否则可能出现兼容性问题;
  10. 提供了云函数的日志和监控,可以看到调用次数和运行时间等。

云调用

云调用就是云函数中调用小程序开发的接口 ,。

支持云调用的服务端接口标识有云调用,见 微信小程序服务端接口

开发数据也可以通过云调用获取:服务端获取开放数据

开发框架

配置文件:app.json,小程序全局配置。

工具配置:project.config.json,开发者工具配置。

页面配置:page.json,独立定义页面属性。

WXML 模板:类似于 HTML 的存在,小程序的页面文件,小程序提供的组件和 api,可以在这里使用。

WXSS 样式:类似于 CSS 的存在,对 CSS 做了一些扩充和修改。

目录结构如下:

├── app.js 
├── app.json                # 小程序全局配置
├── app.wxss
├── pages
│   │── index
│   │   ├── index.wxml
│   │   ├── index.js
│   │   ├── index.json
│   │   └── index.wxss
│   └── logs
│       ├── logs.wxml
│       └── logs.js
└── utils

当前(2019-06-09 23:00:33) app.json 一共有 16 个配置项。

pages: []string,字符串列表,必须,包含小程序的所有页面,排在最前面的就是小程序的首页;

window: Object,可选,全局设置小程序的状态栏、导航条、标题、背景色等,总共 11 项;

tabBar:Object,可选,小程序的 tab 标签设置,最多 5 个 tab;

networkTimeout: 网络请求超时时间;

debug:debug 模式,输出调试信息;

functionalPages:启用插件功能页

subpackages: 项目分包结构,启用分包加载时使用,分包加载就是将小程序打包成多个包,按需加载;

preloadRule: 分包预下载的规则 ,就是分包预先下载;

workers:处理多线程任务的 woker 的代码目录,worker 在小程序后台运行;

requiredBackgroundModes: 申请要用到的后台运行的功能;

plugins: 用到的小程序插件

resizable:在 iPad 上是否可以屏幕旋转;

navigateToMiniProgramAppIdLis: 当前小程序会跳转到的其它小程序的 appid 列表,最多允许填写 10 个;

usingComponents:将自定义组件声明为全局组件,在小程序内可直接使用,不需要再次声明;

permission:小程序需要的接口权限;

sitemapLocation: sitemap.json 文件的路径,默认就是根目录下的 sitemap.json。

开发相关:框架接口WXML语法WXS语法

小程序入门

小程序开发指南中的步骤走一遍,就完成入门了。指南文档非常详细,不得不说,原始文档为中文,学习起来顺畅太多了!下面只记录一些要点。

使用微信开发者工具的时候,要用微信登陆。

常见需求

获取用户进入小程序的路径

就是知道用户是从那里进入小程序的,调用相关接口可以得到一个场景值,每个场景值是一类进入场景: 场景值列表

有些场景还会附带来源的 appid ,可精确知道用户如何过来的,能够返回来源 appid 的场景

场景值       场景                                     appId含义
1020         公众号 profile 页相关小程序列表         来源公众号
1035         公众号自定义菜单                        来源公众号
1036         App 分享消息卡片                        来源App
1037         小程序打开小程序                        来源小程序
1038         从另一个小程序返回                      来源小程序
1043         公众号模板消息                          来源公众号

参考

  1. 微信小程序开发指南

站长微信(朋友圈有精华,一般不闲聊)

推荐阅读

Copyright @2011-2019 All rights reserved. 转载请添加原文连接,合作请加微信lijiaocn或者发送邮件: [email protected],备注网站合作

友情链接:  李佶澳的博客  小鸟笔记  软件手册  编程手册  运营手册  爱马影视  网络课程  奇技淫巧  课程文档  精选文章  发现知识星球  百度搜索 谷歌搜索