×

支付宝小程序介绍

支付宝小程序 开发者入驻支付宝小程序 创建小程序支付宝小程序 开发准备支付宝小程序 提审、发布与修改

支付宝小程序 开放能力

支付宝小程序 获取会员信息支付宝小程序 接入支付支付宝小程序 芝麻信用评分(普惠版)支付宝卡包产品介绍alipay.system.oauth.token(换取授权访问令牌)蚂蚁金服支付宝开发文档——第三方应用授权支付宝小程序介绍 信用借还支付宝小程序 二维码支付宝小程序 安全检测支付宝小程序DEMO

支付宝小程序开发文档

蚂蚁支付宝小程序开发教程手册文档

支付宝小程序 框架

支付宝小程序框架 概述·overview支付宝小程序框架 App支付宝小程序框架 Page支付宝小程序框架 视图层·axml支付宝小程序框架 事件·events支付宝小程序框架 样式·acss支付宝小程序框架 兼容·compatibility

支付宝小程序 组件

支付宝小程序 视图容器

支付宝小程序组件 视图容器·View支付宝小程序组件 滑块视图容器·Swiper支付宝小程序组件 可滚动视图区域·Scroll View

支付宝小程序 基础内容

支付宝小程序组件 文本·Text支付宝小程序组件 图标·Icon支付宝小程序组件 进度条·Progress

支付宝小程序 表单组件

支付宝小程序表单组件 单选项目·Switch支付宝小程序表单组件 滑动选择器·Slider支付宝小程序表单组件 输入框·Textarea支付宝小程序表单组件 Label支付宝小程序表单组件 Radio支付宝小程序表单组件 输入框·Input支付宝小程序表单组件 嵌入页面的滚动选择器·Picker View支付宝小程序表单组件 多选项目·Checkbox支付宝小程序表单组件 表单·Form支付宝小程序表单组件 按钮·Button支付宝小程序表单组件 Picker

支付宝小程序 导航

支付宝小程序组件 页面链接·Navigator

支付宝小程序 媒体组件

支付宝小程序组件 图片·Image

支付宝小程序 画布

支付宝小程序组件 画布·Canvas

支付宝小程序 地图

支付宝小程序组件 地图·Map

支付宝小程序 开放组件

支付宝小程序 关注生活号组件 lifestyle支付宝小程序 云客服组件 Contact-button

支付宝小程序 API

支付宝小程序 界面

支付宝小程序API 导航栏支付宝小程序API TabBar支付宝小程序API 交互反馈支付宝小程序API 下拉刷新支付宝小程序API 联系人支付宝小程序API 选择城市支付宝小程序API 选择日期支付宝小程序API 动画·Animation支付宝小程序API 画布·canvas支付宝小程序API 地图支付宝小程序API 键盘支付宝小程序API 滚动支付宝小程序API 节点查询

支付宝小程序 开放接口

支付宝小程序API 用户授权支付宝小程序API 客户端获取会员信息支付宝小程序API 小程序唤起支付支付宝小程序API 小程序二维码支付宝小程序API 跳转支付宝卡包支付宝小程序API 芝麻认证支付宝小程序API 信用借还

支付宝小程序 多媒体

支付宝小程序API 图片·Image支付宝小程序API 缓存支付宝小程序API 文件支付宝小程序API 位置支付宝小程序API 网络

支付宝小程序API 设备

支付宝小程序API 获取基础库版本号支付宝小程序API canIUse支付宝小程序API 系统信息支付宝小程序API 网络状态支付宝小程序API 剪贴板支付宝小程序API 摇一摇支付宝小程序API 震动支付宝小程序API 拨打电话支付宝小程序API 获取服务器时间支付宝小程序API 用户截屏事件支付宝小程序API 屏幕亮度支付宝小程序API 扫码

支付宝小程序API 蓝牙

支付宝小程序蓝牙 快速接入支付宝小程序蓝牙 API列表支付宝小程序API 数据安全支付宝小程序API 分享支付宝小程序API 自定义分析

支付宝小程序 开发工具

支付宝小程序开发工具 概览支付宝小程序开发工具 编码支付宝小程序开发工具 调试支付宝小程序开发工具 上传支付宝小程序开发工具 体验版测试支付宝小程序开发工具 设置支付宝小程序开发工具 ESLint支付宝小程序开发工具 历史更新日志支付宝小程序开发工具 下载支付宝小程序 更新日志支付宝小程序 常见问题如何发布支付宝小程序?如何开发支付宝小程序?

支付宝小程序框架 App


简介

App代表顶层应用,管理所有页面和全局数据,以及提供生命周期方法。它也是一个构造方法,生成App实例。一个小程序就是一个App实例。

每个小程序的顶层一般包含三个文件。

  • app.js:应用逻辑
  • app.acss:应用样式(可选)
  • app.json:应用配置

下面是一个简单的app.json

{
  "pages": [
    "pages/index/index",
    "pages/logs/index"
  ],
  "window": {
    "defaultTitle": "Demo"
  }
}

上面配置指定小程序包含两个页面,以及应用窗口的默认标题是 Demo

App提供四个事件,可以设置钩子方法。

  • onLaunch:小程序启动
  • onShow:小程序切换到前台
  • onHide:小程序切换到后台
  • onError: 小程序出错

一个简单的app.js代码如下。

App({
  onLaunch(options) {
    // 小程序初始化
  },
  onShow(options) {
    // 小程序显示
  },
  onHide() {
    // 小程序隐藏
  },
  onError(msg) {
    console.log(msg)
  },
  globalData: {
    foo: true,
  }
})

App()

App() 接受一个 object 作为参数,用来配置小程序的生命周期等。

参数说明:

属性 类型 描述 触发时机
onLaunch Function 监听小程序初始化 当小程序初始化完成时触发,全局只触发一次)
onShow Function 监听小程序显示 当小程序启动,或从后台进入前台显示时触发
onHide Function 监听小程序隐藏 当小程序从前台进入后台时触发
onError Function 监听小程序错误 当小程序发生 js 错误时触发

前台、后台定义: 用户点击左上角关闭,或者按了设备 Home 键离开支付宝时,小程序并不会直接销毁,而是进入了后台,当再次进入支付宝或再次打开小程序时,又会从后台进入前台。

只有当小程序进入后台一定时间,或占用系统资源过高,才会被真正销毁。

onLaunch/onShow 方法的参数

属性 类型 描述
query Object 当前小程序的 query
path String 当前小程序的页面地址

注意该参数从启动参数的 query 字段解析而来。例如 url 如下。

alipays://platformapi/startapp?appId=1999&query=number%3D1

其中的query参数解析如下。

number%3D1 === encodeURIComponent('number=1')

那么,当用户第一次启动小程序可以从 onLaunch 方法中获取这个参数,或者小程序在后台时被重新用 schema 打开也可以从 onShow 方法中获取这个参数。

App({
  onLaunch(options) {
    // 第一次打开
    // options.query == {number:1}
  },
  onShow(options) {
    // 从后台被 scheme 重新打开
    // options.query == {number:1}
  },
})

getApp()

我们提供了全局的getApp()函数,可以获取到小程序实例,一般用在各个子页面之中获取顶层应用。

var app = getApp()
console.log(app.globalData) // 获取 globalData

注意:

全局的数据可以在 App() 中设置,各个子页面通过全局函数 getApp() 可以获取全局的应用实例。下面是一个例子。

// app.js
App({
  globalData: 1
})
// a.js

// localValue 只在 a.js 有效
var localValue = 'a'

// 生成 app 实例
var app = getApp()

// 拿到全局数据,并改变它
app.globalData++
// b.js

// localValue 只在 b.js 有效
var localValue = 'b'

// 如果 a.js 先运行,globalData 会返回 2
console.log(getApp().globalData)

上面代码中,a.jsb.js都声明了变量localValue,它们不会互相影响,因为各个脚本声明的变量和函数只在该文件中有效。

app.json

app.json用于全局配置,决定页面文件的路径、窗口表现、设置网络超时时间、设置多 tab 等。

以下是一个包含了部分配置选项的简单配置app.json

{
  "pages": [
    "pages/index/index",
    "pages/logs/index"
  ],
  "window": {
    "defaultTitle": "Demo"
  }
}

app.json配置项如下。

文件 类型 必填 描述
pages String Array 设置页面路径
window Object 设置默认页面的窗口表现
tabBar Object 设置底部 tab 的表现

(1)pages

pages属性是一个数组,每一项都是字符串,用来指定小程序的页面。每一项代表对应页面的路径信息,数组的第一项代表小程序的首页。小程序中新增/减少页面,都需要对 pages数组进行修改。

页面路径不需要写 js 后缀,框架会自动去加载同名的.json.js.axml.acss文件。

举例来说,如果开发目录为:

pages/
pages/index/index.axml
pages/index/index.js
pages/index/index.acss
pages/logs/logs.axml
pages/logs/logs.js
app.js
app.json
app.acss

app.json就要写成下面的样子。

{
  "pages":[
    "pages/index/index",
    "pages/logs/logs"
  ]
}

(2)window

window属性用于设置小程序通用的的状态栏、导航条、标题、窗口背景色。

子属性包括 titleBarColor defaultTitle pullRefresh allowsBounceVertical

文件 类型 必填 描述
titleBarColor HexColor 导航栏背景色
defaultTitle String 页面标题
pullRefresh Boolean 是否允许下拉刷新。默认 false
allowsBounceVertical String(YES/NO) 页面是否支持纵向拽拉超出实际内容。默认 YES
optionMenu Object 基础库 1.3.0+ 支持,设置导航栏格外图标,目前支持设置属性 icon,值为图标地址,大小建议 30*30

下面是一个例子。

{
  "window":{
    "defaultTitle": "支付宝接口功能演示"
  }
}

(3)tabBar

如果你的小程序是一个多 tab 应用(客户端窗口的底部栏可以切换页面),那么可以通过tabBar配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面。

注意,通过页面跳转(my.navigateTo)或者页面重定向(my.redirectTo)所到达的页面,即使它是定义在 tabBar 配置中的页面,也不会显示底部的 tab 栏。另外,tabBar 的第一个页面必须是首页。

tabBar 配置

文件 类型 必填 描述
textColor HexColor 文字颜色
selectedColor HexColor 选中文字颜色
backgroundColor HexColor 背景色
items Array 每个 tab 配置

每个 item 配置

文件 类型 必填 描述
pagePath String 设置页面路径
name String 名称
icon String 平常图标路径
activeIcon String 高亮图标路径

icon 推荐大小为 60*60px 大小,系统会对任意传入的图片非等比拉伸/缩放。

例如

{
  "tabBar": {
    "textColor": "#dddddd",
    "selectedColor": "#49a9ee",
    "backgroundColor": "#ffffff",
    "items": [
      {
        "pagePath": "pages/index/index",
        "name": "首页"
      },
      {
        "pagePath": "pages/logs/logs",
        "name": "日志"
      }
    ]
  }
}

分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)