extension 包
extension 包的目录结构如下:
1 | extension.zip |
extension.css
extension.css 是给宿主提供的扩展样式表,可以增加全局样式,也可为宿主定义的组件编写样式。
为宿主上运行的小程序添加全局样式,举例如下:
1 | body { |
为宿主定义的组件编写样式,假设此时的组件的类名为 ‘xxx-view’,举例如下:
1 | .xxx-view { |
extension.js
在 extension.js 中,使用 AMD(异步模块定义)的 define 函数,定义一个 extension 模块,具体如下:
1 | define('swan-extension', ['swan', 'boxjs'], function (require, module, exports, define, swan, boxjs) { |
第一个参数 swan-extension 是指模块的名字,在智能小程序运行时将使用 require 方法来加载此模块。
第二个参数 [‘swan’, ‘boxjs’] 是指所要依赖的模块列表:
模块 | 含义 |
---|---|
swan | 为小程序开发者提供的全局的 swan 对象,对应的 API 列表可参考官网 |
boxjs | 小程序开发者无法访问的私有能力的接口集合 |
第三个参数是模块的具体实现,使用 module.exports 导出模块,模块中主要有:
参数 | 含义 |
---|---|
name | 宿主的名字 |
methods | 挂载扩展的 API 方法时使用的配置集合 |
hostMethodDescriptions | 扩展的 API 对应端能力的描述表集合 |
getCanIUseMap | 获取宿主 canIUseMap 的方法 |
components | 扩展的组件的集合 |
customLog | 扩展的统计逻辑 |
getShareURL | 自定义分享页面的配置 |