支付宝小程序开发说明

简介: 支付宝小程序开发说明

全局配置


1.app.json 全局配置




{

"pages": [

"pages/index/index",

"pages/logs/index"

],

"window": {

 "defaultTitle": "支付宝接口功能演示",

 "backgroundColor": "#F5F5F9",

 "pullRefresh": false,

 "allowsBounceVertical": "YES",

 "titleBarColor": "#fff"

},

"tabBar": {

 "textColor": "#404040",

 "selectedColor": "#108ee9",

 "backgroundColor": "#F5F5F9",

 "items": [

  {

   "pagePath": "page/tabBar/component/index",

   "icon": "image/icon_component.png",

   "activeIcon": "image/icon_component_HL.png",

   "name": "组件"

  },

  {

   "pagePath": "page/tabBar/API/index",

   "icon": "image/icon_API.png",

   "activeIcon": "image/icon_API_HL.png",

   "name": "API"

  }

 ]

}

}

2.app.js 注册小程序




①.onLaunch




②.onShareAppMessage(object: Object)


全局分享配置。当页面未设置 page.onShareAppMessage 时,调用分享会执行全局的分享设置


③.globalData 全局数据


App() 中可以设置全局数据 globalData


小程序提供了全局的 getApp() 方法。


var app = getApp();

console.log(app.globalData); // 获取 globalData

console.log(app.globalData.hasLogin)

④.注意


A.不要在 onShow 中进行 redirectTo 或navigateTo 等操作页面栈的行为。


B.不要在 onLaunch 里调用 getCurrentPages(),因为此时 page 还未生成。


App({

onLaunch(options) {

 console.log('App Launch', options);

 console.log('getSystemInfoSync', my.getSystemInfoSync());

 console.log('SDKVersion', my.SDKVersion);

},

onShow() {

 console.log('App Show');

},

onHide() {

 console.log('App Hide');

},

globalData: {//全局数据

 hasLogin: false,

},

});

⑤getCurrentPages  


getCurrentPages() 方法用于获取当前页面栈的实例,返回页面数组栈。


3.ACSS 语法参考


ACSS 是一套样式语言,用于描述 AXML 的组件样式,决定 AXML 的组件的显示效果。

为适应广大前端开发者,ACSS 和 CSS 规则完全一致,100% 可以用。同时为更适合开发小程序,对 CSS 进行了扩充。

ACSS 支持 px,rpx,vh,vw 等单位。


注意:


1.ACSS 文件里的本地资源引用请使用绝对路径的方式,不支持相对路径引用。例如:


/* 支持 */

background-image: url('/images/ant.png');

/* 不支持 */

background-image: url('./images/ant.png');

2.给页面设高度100%为什么没用?

添加一个绝对定位就可以了,不添加的话,会根据您的页面的内容去自适应的。


三.Axml介绍


AXML 是小程序框架设计的一套标签语言,用于描述小程序页面的结构。 AXML 语法可分为五个部分:数据绑定、条件渲染、列表渲染、模板、引用。


1.数据绑定:

简单:<view> {{ message }} </view>

属性绑定:<view id="item-{{id}}"> </view>

关键字:需使用双引号封装("")

 <checkbox checked="{{false}}"> </checkbox>

 注意: 不要直接写 checked="false",计算结果是一个字符串,转成布尔值类型后代表真值。

运算:<view hidden="{{flag ? true : false}}"> Hidden </view>


2.条件渲染

<view a:if="{{view == 'WEBVIEW'}}"> WEBVIEW </view>

<view a:elif="{{view == 'APP'}}"> APP </view>

<view a:else> alipay </view>

3.列表渲染

array: [{

   message: 'foo',

 }, {

   message: 'bar',

 }],

<view a:for="{{array}}"  key="{{index}}">

  {{index}}: {{item.message}}

</view>


使用 a:for-item 可以指定数组当前元素的变量名。使用 a:for-index 可以指定数组当前下标的变量名。

<view a:for="{{array}}" a:for-index="idx" a:for-item="itemName">

  {{idx}}: {{itemName.message}}

</view>


4.模板

A.定义模板

 使用 name 属性申明模板名,然后在 <template/> 内定义代码片段。

 <template name="msgItem">

   <view>

  <text> {{index}}: {{msg}} </text>

  <text> Time: {{time}} </text>

   </view>

 </template>

B.使用模板

使用 is 属性,声明需要的模板,然后将需要的 data 传入,比如:

<template is="msgItem" data="{{...item}}"/>

item: {

     index: 0,

     msg: 'this is a template',

     time: '2019-04-19',

   },

5.引用

axml 提供两种文件引用方式 import 和 include。

A.import

在 item.axml 中定义了一个叫 item 的 template。

 <!-- item.axml -->

<template name="item">

  <text>{{text}}</text>

</template>

在 index.axml 中引用 item.axml,就可以使用 item 模板。

<import src="./item.axml"/>

<template is="item" data="{{text: 'forbar'}}"/>


B.include

include 可以将目标文件除 <template/> 外整个代码引入,相当于是拷贝到 include 位置。


<!-- index.axml -->

<include src="./header.axml"/>

<view> body </view>

<include src="./footer.axml"/>


<!-- header.axml -->

<view> header </view>


<!-- footer.axml -->

<view> footer </view>

注意:

模板引入路径支持相对路径、绝对路径,也支持从 node_modules 目录载入第三方模块。

<import src="./a.axml"/> <!-- 相对路径 -->

<import src="/a.axml"/> <!-- 项目绝对路径 -->

<import src="third-party/x.axml"/> <!-- 第三方 npm 包路径 -->

四.事件


事件对象可以携带额外信息,如 id、dataset、touches。


使用:


<view onTap="add"> {{count}} </view>

Page({

  add(event) {

 console.log(event);

  },

});

A.事件类型




<view id="outter" onTap="handleTap1">

 view1

 <view id="middle" catchTap="handleTap2">

   view2

   <view id="inner" onTap="handleTap3">

     view3

   </view>

 </view>

</view>

上面代码中,点击 view3 会先后触发 handleTap3 和 handleTap2(因为 tap 事件会冒泡到 view2,而 view2 阻止了 tap 事件冒泡,不再向父节点传递),点击 view2 会触发 handleTap2,点击 view1 会触发 handleTap1。


B.事件对象


①target


dataset 在组件中可以定义数据,这些数据将会通过事件传递给逻辑层。 以 data- 开头,由连字符 - 连接多个单词,所有字母必须小写(大写字母自动转成小写字母),如 data-element-type,最终会在 event.target.dataset中会将连字符转成驼峰 elementType。


示例代码:

<view data-alpha-beta="1" data-alphaBeta="2" onTap="bindViewTap"> DataSet Test </view>

Page({

 bindViewTap:function(event) {

   event.target.dataset.alphaBeta === 1; // - 会转为驼峰写法

   event.target.dataset.alphabeta === 2; // 大写字母会转为小写字母

 },

});

五.小程序运行机制




B.缓存


C. 问题:


Q:小程序是否支持 cookie 和 session? A:小程序不建议使用 cookie,不支持 session。推荐使用小程序缓存。


Q:使用了缓存 API 后,小程序的缓存什么时候会被清掉? A:使用了缓存 API 必须使用清除 API,否则缓存不会被清除掉。


D.兼容


my.canIUse(String) 实现兼容性判断,详见 接口说明 。


六.UI界面及开发API


组件及api


七.自定义组件


在components文件夹里


创建自定义组件index :

// /components/index/index.json

 {

   "component": true

 }

// /components/index/index.js

 Component({

  mixins: [], // minxin 方便复用代码

  data: { x: 1 }, // 组件内部数据

  props: { y: 1 }, // 可给外部传入的属性添加默认值

  didMount(){}, // 生命周期函数

  didUpdate(){},

  didUnmount(){},

  methods: {   // 自定义方法

  handleTap() {

   this.setData({ x: this.data.x + 1}); // 可使用 setData 改变内部属性

  },

  },

 })

<!-- /components/index/index.axml -->

 <view>

   HI, My Component

 </view>

 

使用:

pages/index/index.json

json:

{

 "usingComponents": {

   "my-component":"/components/index/index"

 }

}

pages/index/index.axml

<my-component />

八.请求接口


my.request




九.页面常见问题


1.官网提供


2.跳转页面时,怎么清除 data 数据中的数据?


无法清除,可以在跳转时覆盖之前的 data 值


3.my.ix.generateImageFromCode 生成二维码 这个码没有时效性,永久可以用


4.小程序有退出监听吗?


无法监听退出


5.如何获取支付宝小程序 appid


onLaunch(options) {

// 第一次打开

console.log(options);

this.globalData.appId= options.referrerInfo.appId;

console.log(this.globalData)

}


目录
相关文章
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
521 29
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
陪练,代练,护航,代打小程序源码/前端UNIAPP-VUE2.0开发 后端Thinkphp6管理/具备家政服务的综合型平台
这款APP通过技术创新,将代练、家政、娱乐社交等场景融合,打造“全能型生活服务生态圈”。以代练为切入点,提供模块化代码支持快速搭建平台,结合智能匹配与技能审核机制,拓展家政服务和商业管理功能。技术架构具备高安全性和扩展性,支持多业务复用,如押金冻结、录屏监控等功能跨领域应用。商业模式多元,包括交易抽成、增值服务及广告联名,同时设计跨领域积分体系提升用户粘性,实现生态共生与B端赋能。
236 12
weixin163基于微信小程序的校园二手交易平台系统设计与开发ssm(文档+源码)_kaic
本文介绍了一款基于微信小程序的校园二手物品交易平台的开发与实现。该平台采用Java语言开发服务端,使用MySQL数据库进行数据存储,前端以微信小程序为载体,支持管理员和学生两种角色操作。管理员可管理用户、商品分类及信息、交易记录等,而学生则能注册登录、发布购买商品、参与交流论坛等。系统设计注重交互性和安全性,通过SSM框架优化开发流程,确保高效稳定运行,满足用户便捷交易的需求,推动校园资源共享与循环利用。
工会成立100周年纪念,开发职工健身AI运动小程序、APP方案推荐
为庆祝中华全国总工会成立100周年,特推出基于AI技术的智能健身系统,以小程序和APP形式呈现,助力职工健康生活。方案包括:1) 小程序插件,支持多种运动识别,开箱即用;2) APP插件,提供更高精度的运动检测;3) 成熟的「AI乐运动」系统,支持赛事活动管理。这些方案满足不同需求,推动全民健身体验升级,彰显工会对职工健康的关怀。
技术小白如何利用DeepSeek半小时开发微信小程序?
通过通义灵码的“AI程序员”功能,即使没有编程基础也能轻松创建小程序或网页。借助DeepSeek V3和R1满血版模型,用户只需用自然语言描述需求,就能自动生成代码并优化程序。例如,一个文科生仅通过描述需求就成功开发了一款记录日常活动的微信小程序。此外,通义灵码还提供智能问答模式,帮助用户解决开发中的各种问题,极大简化了开发流程,让普通人的开发体验更加顺畅。
1309 11
技术小白如何利用DeepSeek半小时开发微信小程序?
【一步步开发AI运动小程序】二十一、如何将AI运动项目配置持久化到后端?
本文介绍基于云智「Ai运动识别引擎」的运动配置持久化方案,旨在优化小程序或Uni APP中AI运动识别能力。通过将运动检测参数(如`Key`、`Name`、`TickMode`、`rules`或`samples`)持久化到后端,可避免因频繁调整运动参数而重新发布应用,提升用户体验。持久化数据结构支持规则和姿态样本存储,适用于关系数据库、文件或文档数据库(如MongoDB)。此外,云智还提供运动自动适配工具及「AI乐运动」产品,助力快速实现AI体育、全民健身等场景。
weixin168“返家乡”高校暑期社会实践微信小程序设计与开发ssm(文档+源码)_kaic
本文探讨高校暑期社会实践微信小程序的开发与应用,旨在通过信息化手段提升活动管理效率。借助微信小程序技术、SSM框架及MySQL数据库,实现信息共享、流程规范和操作便捷。系统涵盖需求分析、可行性研究、设计实现等环节,确保技术可行、操作简便且经济合理。最终,该小程序可优化活动发布、学生信息管理和心得交流等功能,降低管理成本并提高工作效率。
【一步步开发AI运动小程序】十八、如何识别用户上传图片中的人体、运动、动作、姿态?
【云智AI运动识别小程序插件】为小程序提供人体、运动及姿态检测的AI能力,本地引擎支持10余种运动,无需后台服务,具备快速、低成本等优势。本文介绍如何通过Canvas方案读取用户上传图片的像素数据,实现人体检测与姿态分析功能,代码简单高效,适合快速集成。更多内容欢迎交流!
【一步步开发AI运动小程序】十九、运动识别中如何解析RGBA帧图片?
本文介绍了如何将相机抽取的RGBA帧图像解析为`.jpg`或`.png`格式,适用于体测、赛事等场景。首先讲解了RGBA图像结构,其为一维数组,每四个元素表示一个像素的颜色与透明度值。接着通过`uni.createOffscreenCanvas()`创建离屏画布以减少绘制干扰,并提供代码实现,将RGBA数据逐像素绘制到画布上生成图片。最后说明了为何不直接使用拍照API及图像转换的调用频率建议,强调应先暂存帧数据,运动结束后再进行转换和上传,以优化性能。
微信小程序开发全流程:从注册到上线的完整指南
这篇文章详细记录了微信小程序的完整开发到最终上线的每一个步骤。适合对小程序开发感兴趣的个人开发者或希望了解完整流程的学习者,涵盖了云开发、事件绑定、生命周期管理、组件使用等关键内容。
1166 11

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问