@types/ali-app
Version:
TypeScript definitions for ali-app
1,667 lines (1,566 loc) • 118 kB
TypeScript
// 公共部分
declare namespace my {
// #region 基本参数
interface DataResponse {
/** 回调函数返回的内容 */
data: any;
/** 开发者服务器返回的 HTTP 状态码 */
status: number;
/** 开发者服务器返回的 HTTP Response Header */
headers: object;
}
interface ErrMsgResponse {
/** 成功:ok,错误:详细信息 */
errMsg: "ok" | string;
}
interface TempFileResponse {
/** 文件的临时路径 */
apFilePath: string;
}
interface BaseOptions<R = any, E = any> {
/** 接口调用成功的回调函数 */
success?(res: R): void;
/** 接口调用失败的回调函数 */
fail?(res: E): void;
/** 接口调用结束的回调函数(调用成功、失败都会执行) */
complete?(res: any): void;
}
interface ErrCodeResponse {
errCode: number;
}
// #endregion
}
// 界面
declare namespace my {
// #region 导航栏 https://docs.alipay.com/mini/api/ui-navigate
interface NavigateToOptions extends BaseOptions {
/** 需要跳转的应用内页面的路径 */
url: string;
}
/**
* 保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面。
*
* 注意:为了不让用户在使用小程序时造成困扰,
* 我们规定页面路径只能是五层,请尽量避免多层级的交互方式。
*/
function navigateTo(options: NavigateToOptions): void;
interface RedirectToOptions extends BaseOptions {
/** 需要跳转的应用内页面的路径 */
url: string;
}
/**
* 关闭当前页面,跳转到应用内的某个页面。
*/
function redirectTo(options: RedirectToOptions): void;
interface NavigateBackOptions extends BaseOptions {
/** 返回的页面数,如果 delta 大于现有打开的页面数,则返回到首页 */
delta: number;
}
/**
* 关闭当前页面,返回上一级或多级页面。可通过 getCurrentPages 获取当前的页面栈信息,决定需要返回几层。
*/
function navigateBack(options?: NavigateBackOptions): void;
interface ReLaunchOptions extends BaseOptions {
/**
* 需要跳转的应用内页面路径 , 路径后可以带参数。
* 参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔
* 如 'path?key=value&key2=value2',如果跳转的页面路径是 tabBar 页面则不能带参数
*/
url: string;
}
/**
* 关闭所有页面,打开到应用内的某个页面。
*/
function reLaunch(options?: ReLaunchOptions): void;
interface SetNavigationBarOptions extends BaseOptions {
/** 页面标题 */
title: string;
/** 图片连接地址,必须是https,请使用3x高清图片。若设置了image则title参数失效 */
image: string;
/** 导航栏背景色,支持十六进制颜色值 */
backgroundColor: string;
/** 导航栏底部边框颜色,支持十六进制颜色值。若设置了 backgroundColor,则borderBottomColor 不会生效,默认会和 backgroundColor 颜色一样 */
borderBottomColor: string;
/** 是否重置导航栏为支付宝默认配色,默认 false */
reset: boolean;
}
/**
* 动态设置当前页面的标题。
*/
function setNavigationBar(options: Partial<SetNavigationBarOptions>): void;
/**
* 显示导航栏 loading
*/
function showNavigationBarLoading(): void;
/** 隐藏导航栏 loading。 */
function hideNavigationBarLoading(): void;
// #endregion
// #region TabBar https://docs.alipay.com/mini/api/ui-tabbar
interface SwitchTabOptions extends BaseOptions {
/**
* 需要跳转的 tabBar 页面的路径
* (需在 app.json 的 tabBar 字段定义的页面),路径后不能带参数
*/
url: string;
}
/**
* 跳转到指定 tabBar 页面,并关闭其他所有非 tabBar 页面
*/
function switchTab(options: SwitchTabOptions): void;
// #endregion
// #region 交互反馈 https://docs.alipay.com/mini/api/ui-feedback
interface AlertOptions extends BaseOptions {
/** alert框的标题 */
title: string;
/** alert框的内容 */
content: string;
/** 按钮文字,默认确定 */
buttonText: string;
}
function alert(options: Partial<AlertOptions>): void;
interface ConfirmOptions extends BaseOptions {
/** confirm框的标题 */
title: string;
/** confirm框的内容 */
content: string;
/** 确认按钮文字,默认‘确定’ */
confirmButtonText: string;
/** 确认按钮文字,默认‘取消’ */
cancelButtonText: string;
success(result: { confirm: boolean }): void;
}
function confirm(options: Partial<ConfirmOptions>): void;
interface PromptOptions extends BaseOptions {
/** prompt框标题 */
title?: string | undefined;
/** prompt框文本,默认‘请输入内容’ */
message?: string | undefined;
/** 输入框内的提示文案 */
placeholder?: string | undefined;
/** message对齐方式,可用枚举left/center/right,iOS ‘center’, android ‘left’ */
align?: "left" | "center" | "right" | string | undefined;
/** 确认按钮文字,默认‘确定’ */
okButtonText: string;
/** 确认按钮文字,默认‘取消’ */
cancelButtonText: string;
success(result: { ok: boolean; inputValue: string }): void;
}
function prompt(options: PromptOptions): void;
interface ToastOptions extends BaseOptions {
/**
* 文字内容
*/
content: string;
/** toast 类型,展示相应图标,默认 none,支持 success / fail / exception / none’。其中 exception 类型必须传文字信息 */
type?: "none" | "success" | "fail" | "exception" | string | undefined;
/**
* 显示时长,单位为 ms,默认 2000
*/
duration?: number | undefined;
}
/**
* 显示消息提示框
*/
function showToast(options: Partial<ToastOptions>): void;
function hideToast(): void;
interface LoadingOptions extends BaseOptions {
/**
* loading的文字内容
*/
content?: string | undefined;
/**
* 延迟显示,单位 ms,默认 0。如果在此时间之前调用了 my.hideLoading 则不会显示
*/
delay?: number | undefined;
}
/**
* 显示加载提示
*/
function showLoading(options?: LoadingOptions): void;
interface HideLoadingOptions {
/**
* 体指当前page实例,某些场景下,需要指明在哪个page执行hideLoading。
*/
page: any;
}
/**
* 隐藏消息提示框
*/
function hideLoading(options?: HideLoadingOptions): void;
interface Badge {
/** 需要飘红的选项的索引,从0开始 */
index: number;
/**
* 飘红类型,支持 none(无红点)/ point(纯红点) / num(数字红点)/ text(文案红点)/ more(...)
*/
type: "none" | "point" | "num" | "text" | "more" | string;
/**
* 自定义飘红文案:
*
* 1、type为none/point/more时本文案可不填
* 2、type为num时本文案为小数或<=0均不显示, >100 显示"..."
*/
text: string;
}
interface ActionSheetOptions extends BaseOptions {
/** 菜单标题 */
title?: string | undefined;
/**
* 菜单按钮文字数组
*/
items: string[];
/**
* 取消按钮文案。默认为‘取消’。注:Android平台此字段无效,不会显示取消按钮。
*/
cancelButtonText?: string | undefined;
/**
* (iOS特殊处理)指定按钮的索引号,从0开始,使用场景:需要删除或清除数据等类似场景,默认红色
*/
destructiveBtnIndex?: number | undefined;
/**
* 需飘红选项的数组,数组内部对象字段见下表
*/
badges?: Array<Partial<Badge>> | undefined;
/**
* 接口调用成功的回调函数
*/
success?(res: {
/**
* 用户点击的按钮,从上到下的顺序,从0开始
*/
index: number;
}): void;
}
/**
* 显示操作菜单
*/
function showActionSheet(options: ActionSheetOptions): void;
// #endregion
// #region 下拉刷新 https://docs.alipay.com/mini/api/ui-pulldown
/**
* Page 实现的接口对象
*/
interface PageOptions {
/**
* 下拉刷新
* 在 Page 中定义 onPullDownRefresh 处理函数,监听该页面用户下拉刷新事件。
* 需要在页面对应的 .json 配置文件中配置 "pullRefresh": true 选项,才能开启下拉刷新事件。
* 当处理完数据刷新后,调用 my.stopPullDownRefresh 可以停止当前页面的下拉刷新。
*/
onPullDownRefresh?(this: Page): void;
}
/**
* 停止当前页面的下拉刷新。
*/
function stopPullDownRefresh(): void;
// #endregion
// #region 联系人 https://docs.alipay.com/mini/api/ui-contact
interface ChoosePhoneContactOptions extends BaseOptions {
success(result: {
name: string; // 选中的联系人姓名
mobile: string; // 选中的联系人手机号
}): void;
/**
* 10 没有权限
* 11 用户取消操作(或设备未授权使用通讯录)
*/
fail?(error: 10 | 11): void;
}
/**
* 选择本地系统通信录中某个联系人的电话。
*/
function choosePhoneContact(options: ChoosePhoneContactOptions): void;
interface ChooseAlipayContactOptions extends BaseOptions {
/** 单次最多选择联系人个数,默认 1,最大 10 */
count: number;
success(result: {
realName: string; // 账号的真实姓名
mobile: string; // 账号对应的手机号码
email: string; // 账号的邮箱
avatar: string; // 账号的头像链接
userId: string; // 支付宝账号唯一 userId
}): void;
/**
* 10 没有权限
* 11 用户取消操作(或设备未授权使用通讯录)
*/
fail?(error: 10 | 11): void;
}
/**
* 唤起支付宝通讯录,选择一个或者多个支付宝联系人。
*/
function chooseAlipayContact(options: ChooseAlipayContactOptions): void;
interface ContactsDic {
/**
* 支付宝账号唯一 userId
*/
userId: string;
/**
* 账号的头像链接
*/
avatar: string;
/**
* 账号对应的手机号码
*/
mobile: string;
/**
* 账号的真实姓名
*/
realName: string;
/**
* 账号的显示名称:也即支付宝设置的备注名称,默认为朋友圈里面的昵称
*/
displayName: string; // 账号的显示名称:也即支付宝设置的备注名称,默认为朋友圈里面的昵称
}
interface ChooseContactOptions extends BaseOptions {
/** 选择类型,值为single(单选)或者 multi(多选) */
chooseType: "single" | "multi" | string;
/** 包含手机通讯录联系人的模式:默认为不包含(none)、或者仅仅包含双向通讯录联系人(known)、或者包含手机通讯录联系人(all) */
includeMobileContactMode?: "none" | "known" | "all" | string | undefined;
/** 是否包含自己 */
includeMe?: boolean | undefined;
/** 最大选择人数,仅 chooseType 为 multi 时才有效 */
multiChooseMax?: number | undefined;
/** 多选达到上限的文案,仅 chooseType 为 multi 时才有效 */
multiChooseMaxTips?: string | undefined;
success(result: {
contactsDicArray: ContactsDic[];
}): void;
}
/**
* 唤起选人组件,默认只包含支付宝联系人,可以通过修改参数包含手机通讯录联系人或者双向通讯录联系人。
*/
function chooseContact(options: ChooseContactOptions): void;
// #endregion
// #region 选择城市 https://docs.alipay.com/mini/api/ui-city
interface City {
city: string; // 城市名
adCode: string; // 行政区划代码
spell?: string | undefined; // 城市名对应拼音拼写,方便用户搜索
}
interface ChooseCityOptions extends BaseOptions {
showLocatedCity: boolean; // 是否显示当前定位城市,默认 false
showHotCities: boolean; // 是否显示热门城市,默认 true
cities: City[]; // 自定义城市列表,列表内对象字段见下表
hotCities: City[]; // 自定义热门城市列表,列表内对象字段见下表
success(result: { city: string; adCode: string }): void;
}
/**
* 打开城市选择列表
*
* 如果用户没有选择任何城市直接点击了返回,将不会触发回调函数。
*/
function chooseCity(options: Partial<ChooseCityOptions>): void;
// #endregion
// #region 选择日期 https://docs.alipay.com/mini/api/ui-date
interface DatePickerOptions extends BaseOptions {
/**
* 返回的日期格式,
* 1. yyyy-MM-dd(默认)
* 2. HH:mm
* 3. yyyy-MM-dd HH:mm
* 4. yyyy-MM (最低基础库:1.1.1, 可用 canIUse('datePicker.object.format.yyyy-MM') 判断)
* 5. yyyy (最低基础库:1.1.1,可用 canIUse('datePicker.object.format.yyyy') 判断)
*/
format: "yyyy-MM-dd" | "HH:mm" | "yyyy-MM-dd HH:mm" | "yyyy-MM" | "yyyy";
/** 初始选择的日期时间,默认当前时间 */
currentDate: string;
/** 最小日期时间 */
startDate: string;
/** 最大日期时间 */
endDate: string;
success(result: { date: string }): void;
/** 11 用户取消操作 */
fail(error: 11): void;
}
/**
* 打开日期选择列表
*/
function datePicker(optiosn: Partial<DatePickerOptions>): void;
// #endregion
// #region 动画 https://docs.alipay.com/mini/api/ui-animation
type TimingFunction =
| "linear"
| "ease"
| "ease-in"
| "ease-in-out"
| "ease-out"
| "step-start"
| "step-end";
interface CreateAnimationOptions {
/** 动画持续时间,单位ms,默认值 400 */
duration: number;
/** 定义动画的效果,默认值"linear",有效值:"linear","ease","ease-in","ease-in-out","ease-out","step-start","step-end" */
timeFunction: TimingFunction;
/** 动画持续时间,单位 ms,默认值 0 */
delay: number;
/** 设置transform-origin,默认为"50% 50% 0" */
transformOrigin: string;
}
interface Animator {
actions: AnimationAction[];
}
interface AnimationAction {
animates: Animate[];
option: AnimationActionOption;
}
interface AnimationActionOption {
transformOrigin: string;
transition: AnimationTransition;
}
interface AnimationTransition {
delay: number;
duration: number;
timingFunction: TimingFunction;
}
interface Animate {
type: string;
args: any[];
}
/**
* 创建动画实例 animation。调用实例的方法来描述动画,最后通过动画实例的export方法将动画数据导出并传递给组件的animation属性。
*
* 注意: export 方法每次调用后会清掉之前的动画操作
*/
function createAnimation(options: Partial<CreateAnimationOptions>): Animation;
/** 动画实例可以调用以下方法来描述动画,调用结束后会返回自身,支持链式调用的写法。 */
interface Animation {
/**
* 调用动画操作方法后要调用 step() 来表示一组动画完成,
* 可以在一组动画中调用任意多个动画方法,
* 一组动画中的所有动画会同时开始,
* 一组动画完成后才会进行下一组动画。
* @param options 指定当前组动画的配置
*/
step(options?: CreateAnimationOptions): void;
/**
* 导出动画操作
*
* 注意: export 方法每次调用后会清掉之前的动画操作
*/
export(): Animator;
/** 透明度,参数范围 0~1 */
opacity(value: number): Animation;
/** 颜色值 */
backgroundColor(color: string): Animation;
/** 长度值,如果传入 Number 则默认使用 px,可传入其他自定义单位的长度值 */
width(length: number): Animation;
/** 长度值,如果传入 Number 则默认使用 px,可传入其他自定义单位的长度值 */
height(length: number): Animation;
/** 长度值,如果传入 Number 则默认使用 px,可传入其他自定义单位的长度值 */
top(length: number): Animation;
/** 长度值,如果传入 Number 则默认使用 px,可传入其他自定义单位的长度值 */
left(length: number): Animation;
/** 长度值,如果传入 Number 则默认使用 px,可传入其他自定义单位的长度值 */
bottom(length: number): Animation;
/** 长度值,如果传入 Number 则默认使用 px,可传入其他自定义单位的长度值 */
right(length: number): Animation;
/** deg的范围-180~180,从原点顺时针旋转一个deg角度 */
rotate(deg: number): Animation;
/** deg的范围-180~180,在X轴旋转一个deg角度 */
rotateX(deg: number): Animation;
/** deg的范围-180~180,在Y轴旋转一个deg角度 */
rotateY(deg: number): Animation;
/** deg的范围-180~180,在Z轴旋转一个deg角度 */
rotateZ(deg: number): Animation;
/** 同transform-function rotate3d */
rotate3d(x: number, y: number, z: number, deg: number): Animation;
/**
* 一个参数时,表示在X轴、Y轴同时缩放sx倍数;
* 两个参数时表示在X轴缩放sx倍数,在Y轴缩放sy倍数
*/
scale(sx: number, sy?: number): Animation;
/** 在X轴缩放sx倍数 */
scaleX(sx: number): Animation;
/** 在Y轴缩放sy倍数 */
scaleY(sy: number): Animation;
/** 在Z轴缩放sy倍数 */
scaleZ(sz: number): Animation;
/** 在X轴缩放sx倍数,在Y轴缩放sy倍数,在Z轴缩放sz倍数 */
scale3d(sx: number, sy: number, sz: number): Animation;
/**
* 一个参数时,表示在X轴偏移tx,单位px;
* 两个参数时,表示在X轴偏移tx,在Y轴偏移ty,单位px。
*/
translate(tx: number, ty?: number): Animation;
/**
* 在X轴偏移tx,单位px
*/
translateX(tx: number): Animation;
/**
* 在Y轴偏移tx,单位px
*/
translateY(ty: number): Animation;
/**
* 在Z轴偏移tx,单位px
*/
translateZ(tz: number): Animation;
/**
* 在X轴偏移tx,在Y轴偏移ty,在Z轴偏移tz,单位px
*/
translate3d(tx: number, ty: number, tz: number): Animation;
/**
* 参数范围-180~180;
* 一个参数时,Y轴坐标不变,X轴坐标延顺时针倾斜ax度;
* 两个参数时,分别在X轴倾斜ax度,在Y轴倾斜ay度
*/
skew(ax: number, ay?: number): Animation;
/** 参数范围-180~180;Y轴坐标不变,X轴坐标延顺时针倾斜ax度 */
skewX(ax: number): Animation;
/** 参数范围-180~180;X轴坐标不变,Y轴坐标延顺时针倾斜ay度 */
skewY(ay: number): Animation;
/**
* 同transform-function matrix
*/
matrix(
a: number,
b: number,
c: number,
d: number,
tx: number,
ty: number,
): Animation;
/** 同transform-function matrix3d */
matrix3d(
a1: number,
b1: number,
c1: number,
d1: number,
a2: number,
b2: number,
c2: number,
d2: number,
a3: number,
b3: number,
c3: number,
d3: number,
a4: number,
b4: number,
c4: number,
d4: number,
): Animation;
}
// #endregion
// #region 画布 https://docs.alipay.com/mini/api/ui-canvas
interface ToTempFilePathOptions extends BaseOptions {
x: number; // 画布 x 轴起点,默认为 0
y: number; // 画布 y 轴起点,默认为 0
width: number; // 画布宽度,默认为 canvas 宽度 - x
height: number; // 画布高度,默认为 canvas 高度 - y
destWidth: number; // 输出的图片宽度,默认为 width
destHeight: number; // 输出的图片高度,默认为 height
}
type Color = string | number[] | number | CanvasAction;
interface CanvasAction {
/**
* 创建一个颜色的渐变点。
* 小于最小 stop 的部分会按最小 stop 的 color 来渲染,大于最大 stop 的部分会按最大 stop 的 color 来渲染。
*
* @param stop 渐变点位置,值必须在 [0,1] 范围内
* @param color 颜色值
*/
addColorStop(stop: number, color: Color): void;
}
interface TextMetrics {
width: number;
}
interface ConvasContext {
font: string;
/**
* 把当前画布的内容导出生成图片,并返回文件路径。
*/
toTempFilePath(options?: Partial<ToTempFilePathOptions>): void;
/**
* textAlign 是 Canvas 2D API 描述绘制文本时,文本的对齐方式的属性。注意,该对齐是基于
* CanvasRenderingContext2D.fillText 方法的x的值。所以如果 textAlign="center",那么该文本将画在 x-50%*width
*/
setTextAlign(textAlign: "left" | "right" | "center" | "start" | "end"): void;
/**
* textBaseline 是 Canvas 2D API 描述绘制文本时,当前文本基线的属性。
*/
setTextBaseline(textBaseline: "top" | "hanging" | "middle" | "alphabetic" | "ideographic" | "bottom"): void;
/**
* 设置填充色。
*
* 如果没有设置 fillStyle,则默认颜色为 black。
*/
setFillStyle(color: Color): void;
/**
* 设置边框颜色。
*
* 如果没有设置 strokeStyle,则默认颜色为 black。
*/
setStrokeStyle(color: Color): void;
/**
* 设置阴影样式。
* 如果没有设置,offsetX 的默认值为 0, offsetY 的默认值为 0, blur 的默认值为 0,color 的默认值为 black。
* @param offsetX 阴影相对于形状水平方向的偏移
* @param offsetY 阴影相对于形状竖直方向的偏移
* @param blur 0~100 阴影的模糊级别,值越大越模糊
* @param color 阴影颜色
*/
setShadow(offsetX: number, offsetY: number, blur: number, color: Color): void;
/**
* 创建一个线性的渐变色。
*
* @param x0 起点 x 坐标
* @param y0 起点 y 坐标
* @param x1 终点 x 坐标
* @param y1 终点 y 坐标
*/
createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasAction;
/**
* 创建一个圆形的渐变色。
* 起点在圆心,终点在圆环。
* 需要使用 addColorStop() 来指定渐变点,至少需要两个。
* @param x 圆心 x 坐标
* @param y 圆心 y 坐标
* @param r 圆半径
* @returns
*/
createCircularGradient(x: number, y: number, r: number): CanvasAction;
/**
* 设置线条的宽度。
* @param lineWidth 线条宽度,单位为 px
*/
setLineWidth(lineWidth: number): void;
/**
* 设置线条的端点样式。
*
* @param lineCap 线条的结束端点样式
*/
setLineCap(lineCap: "round" | "butt" | "square"): void;
/**
* 设置线条的交点样式。
*
* @param lineJoin 线条的结束交点样式
*/
setLineJoin(lineJoin: "round" | "bevel" | "miter"): void;
/**
* 设置最大斜接长度,斜接长度指的是在两条线交汇处内角和外角之间的距离。 当 setLineJoin() 为 miter 时才有效。超过最大倾斜长度的,连接处将以 lineJoin 为 bevel 来显示
*
* @param miterLimit 最大斜接长度
*/
setMiterLimit(miterLimit: number): void;
/**
* 创建一个矩形。
*
* @param x 矩形左上角的 x 坐标
* @param y 矩形左上角的 y 坐标
* @param width 矩形路径宽度
* @param height 矩形路径高度
*/
rect(x: number, y: number, width: number, height: number): void;
/**
* 填充矩形。
* 用 setFillStyle() 设置矩形的填充色,如果没设置则默认是 black。
* @param x 矩形左上角的 x 坐标
* @param y 矩形左上角的 y 坐标
* @param width 矩形路径宽度
* @param height 矩形路径高度
*/
fillRect(x: number, y: number, width: number, height: number): void;
/**
* 画一个矩形(非填充)。
* 用 setFillStroke() 设置矩形线条的颜色,如果没设置默认是 black。
* @param x 矩形左上角的 x 坐标
* @param y 矩形左上角的 y 坐标
* @param width 矩形路径宽度
* @param height 矩形路径高度
*/
strokeRect(x: number, y: number, width: number, height: number): void;
/**
* 清除画布上在该矩形区域内的内容。
* clearRect 并非画一个白色的矩形在地址区域,而是清空,为了有直观感受,可以对 canvas 加了一层背景色。
* @param x 矩形左上角的 x 坐标
* @param y 矩形左上角的 y 坐标
* @param width 矩形路径宽度
* @param height 矩形路径高度
*/
clearRect(x: number, y: number, width: number, height: number): void;
/**
* 对当前路径中的内容进行填充。默认的填充色为黑色。
*/
fill(): void;
/**
* 画出当前路径的边框。默认 black。
* stroke() 描绘的的路径是从 beginPath() 开始计算,但是不会将 strokeRect() 包含进去
*/
stroke(): void;
/**
* 关闭一个路径
* 关闭路径会连接起点和终点。
* 如果关闭路径后没有调用 fill() 或者 stroke() 并开启了新的路径,那之前的路径将不会被渲染。
*/
beginPath(): void;
/**
* 关闭一个路径
* 关闭路径会连接起点和终点。
*/
closePath(): void;
/**
* 把路径移动到画布中的指定点,不创建线条。
* 用 stroke() 方法来画线条
* @param x 目标位置 x 坐标
* @param y 目标位置 y 坐标
*/
moveTo(x: number, y: number): void;
/**
* lineTo 方法增加一个新点,然后创建一条从上次指定点到目标点的线。
* 用 stroke() 方法来画线条
*
* @param x 目标位置 x 坐标
* @param y 目标位置 y 坐标
*/
lineTo(x: number, y: number): void;
/**
* 画一条弧线。
* 创建一个圆可以用 arc() 方法指定其实弧度为0,终止弧度为 2 * Math.PI。
*
* @param x
* @param y
* @param r
* @param sAngle
* @param eAngle
*/
arc(x: number, y: number, r: number, sAngle: number, eAngle: number): void;
/**
* 创建三次方贝塞尔曲线路径。
* 曲线的起始点为路径中前一个点。
* @param cp1x
* @param cp1y
* @param cp2x
* @param cp2y
* @param x
* @param y
*/
bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
/**
* 将当前创建的路径设置为当前剪切路径。
*/
clip(): void;
/**
* 创建二次贝塞尔曲线路径。
* 曲线的起始点为路径中前一个点。
* @param cpx 贝塞尔控制点 x 坐标
* @param cpy 贝塞尔控制点 y 坐标
* @param x 结束点 x 坐标
* @param y 结束点 y 坐标
*/
quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
/**
* 在调用scale方法后,之后创建的路径其横纵坐标会被缩放。多次调用scale,倍数会相乘。
*
* @param scaleWidth 横坐标缩放倍数 (1 = 100%,0.5 = 50%,2 = 200%)
* @param scaleHeight 纵坐标轴缩放倍数 (1 = 100%,0.5 = 50%,2 = 200%)
*/
scale(scaleWidth: number, scaleHeight: number): void;
/**
* 以原点为中心,原点可以用 translate方法修改。顺时针旋转当前坐标轴。多次调用rotate,旋转的角度会叠加。
*
* @param rotate 旋转角度,以弧度计(degrees * Math.PI/180;degrees 范围为0~360)
*/
rotate(rotate: number): void;
/**
* 对当前坐标系的原点(0, 0)进行变换,默认的坐标系原点为页面左上角。
*
* @param x 水平坐标平移量
* @param y 竖直坐标平移量
*/
translate(x: number, y: number): void;
/**
* 设置字体大小。
*
* @param fontSize 字号
*/
setFontSize(fontSize: number): void;
/**
* 在画布上绘制被填充的文本。
*
* @param text 文本
* @param x 绘制文本的左上角 x 坐标
* @param y 绘制文本的左上角 y 坐标
*/
fillText(text: string, x: number, y: number): void;
/**
* 绘制图像,图像保持原始尺寸。
*
* @param imageResource 图片资源, 只支持线上 cdn 地址或离线包地址,线上 cdn 需返回头 Access-Control-Allow-Origin: *
* @param x 图像左上角 x 坐标
* @param y 图像左上角 y 坐标
* @param width 图像宽度
* @param height 图像高度
*/
drawImage(imageResource: string, x: number, y: number, width: number, height: number): void;
/**
* 设置全局画笔透明度。
*
* @param alpha 透明度,0 表示完全透明,1 表示不透明 范围 [0, 1]
*/
setGlobalAlpha(alpha: number): void;
/**
* 设置虚线的样式
*
* @param segments 一组描述交替绘制线段和间距(坐标空间单位)长度的数字。 如果数组元素的数量是奇数, 数组的元素会被复制并重复。例如, [5, 15, 25] 会变成 [5, 15, 25, 5, 15, 25]。
*/
setLineDash(segments: number[]): void;
/**
* 使用矩阵多次叠加当前变换的方法,矩阵由方法的参数进行描述。你可以缩放、旋转、移动和倾斜上下文。
*
* @param scaleX 水平缩放
* @param skewX 水平倾斜
* @param skewY 垂直倾斜
* @param scaleY 垂直缩放
* @param translateX 水平移动
* @param translateY 垂直移动
*/
transform(
scaleX: number,
skewX: number,
skewY: number,
scaleY: number,
translateX: number,
translateY: number,
): void;
/**
* 使用单位矩阵重新设置(覆盖)当前的变换并调用变换的方法,此变换由方法的变量进行描述。
*
* @param scaleX 水平缩放
* @param skewX 水平倾斜
* @param skewY 垂直倾斜
* @param scaleY 垂直缩放
* @param translateX 水平移动
* @param translateY 垂直移动
*/
setTransform(
scaleX: number,
skewX: number,
skewY: number,
scaleY: number,
translateX: number,
translateY: number,
): void;
/**
* 保存当前的绘图上下文。
*/
save(): void;
/**
* 恢复之前保存的绘图上下文。
*/
restore(): void;
/**
* 将之前在绘图上下文中的描述(路径、变形、样式)画到 canvas 中。
* 绘图上下文需要由 my.createCanvasContext(canvasId) 来创建。
* @param [reserve] 本次绘制是否接着上一次绘制,即 reserve 参数为 false 时则在本次调用 drawCanvas绘制之前 native 层应先清空画布再继续绘制;若 reserver 参数为true 时,则保留当前画布上的内容,本次调用drawCanvas绘制的内容覆盖在上面,默认 false
*/
draw(reserve?: boolean): void;
measureText(text: string): TextMetrics;
}
/**
* 创建 canvas 绘图上下文
*
* 该绘图上下文只作用于对应 canvasId 的 <canvas/>
*/
function createCanvasContext(canvasId: string): ConvasContext;
// #endregion
// #region 地图 https://docs.alipay.com/mini/api/ui-map
interface GetCenterLocationOptions extends BaseOptions {
success?(res: { longitude: string; latitude: string }): void;
}
interface MapContext extends BaseOptions {
/**
* 获取当前地图中心的经纬度,返回 gcj02 坐标系的值,可以用于 my.openLocation
*
* @param options
*/
getCenterLocation(options: GetCenterLocationOptions): void;
/**
* 将地图中心移动到当前定位点,需要配合 map 组件的 show-location 使用
*/
moveToLocation(): void;
}
/**
* 创建并返回一个 map 上下文对象 mapContext。
*
* @param mapId
* @returns
*/
function createMapContext(mapId: string): MapContext;
// #endregion
// #region 键盘 https://docs.alipay.com/mini/api/ui-hidekeyboard
/**
* 隐藏键盘
*/
function hideKeyboard(): void;
// #endregion
// #region 滚动 https://docs.alipay.com/mini/api/scroll
interface PageScrollToOptions {
scrollTop: number; // 滚动到页面的目标位置,单位 px
}
/**
* 滚动到页面的目标位置
*
* @param options
*/
function pageScrollTo(options: PageScrollToOptions): void;
// #endregion
// #region 节点查询 https://docs.alipay.com/mini/api/selector-query
interface RectArea {
/** 节点的左边界坐标 */
left: number;
/** 节点的右边界坐标 */
right: number;
/** 节点的上边界坐标 */
top: number;
/** 节点的下边界坐标 */
bottom: number;
/** 节点的宽度 */
width: number;
/** 节点的高度 */
height: number;
}
interface NodesRefRect extends RectArea {
/** 节点的ID */
id: string;
/** 节点的dataset */
dataset: any;
}
interface NodeRefOffset {
/** 节点的ID */
id: string;
/** 节点的dataset */
dataset: any;
/** 节点的水平滚动位置 */
scrollLeft: number;
/** 节点的竖直滚动位置 */
scrollTop: number;
}
interface NodesRef {
/**
* 添加节点的布局位置的查询请求,相对于显示区域,以像素为单位。
* 其功能类似于DOM的getBoundingClientRect。
* 返回值是nodesRef对应的selectorQuery。
* 返回的节点信息中,每个节点的位置用
* left、right、top、bottom、width、height字段描述。
* 如果提供了callback回调函数,在执行selectQuery的exec方法后
* 节点信息会在callback中返回。
*/
boundingClientRect<T extends NodesRefRect | NodesRefRect[]>(
callback?: (rect: T) => void,
): SelectorQuery;
/**
* 添加节点的滚动位置查询请求,以像素为单位。
* 节点必须是scroll-view或者viewport。
* 返回值是nodesRef对应的selectorQuery。
* 返回的节点信息中,每个节点的滚动位置用scrollLeft、scrollHeight字段描述。
* 如果提供了callback回调函数,在执行selectQuery的exec方法后,节点信息会在callback中返回。
*/
scrollOffset(callback?: (rect: NodeRefOffset) => void): SelectorQuery;
// /**
// * 获取节点的相关信息,需要获取的字段在fields中指定。
// * 返回值是nodesRef对应的selectorQuery。
// */
// fields(
// fields: NodeRefFieldsOptions,
// callback?: (result: any) => void
// ): SelectorQuery;
}
/**
* SelectorQuery对象实例
*/
interface SelectorQuery {
// /**
// * 将选择器的选取范围更改为自定义组件component内
// * (初始时,选择器仅选取页面范围的节点,不会选取任何自定义组件中的节点
// * @version 1.6.0
// */
// in(component: Component<object, object>): SelectorQuery;
/**
* 在当前页面下选择第一个匹配选择器selector的节点,返回一个NodesRef对象实例,可以用于获取节点信息。
* selector类似于CSS的选择器,但仅支持下列语法。
* + ID选择器:#the-id
* + class选择器(可以连续指定多个):.a-class.another-class
* + 子元素选择器:.the-parent > .the-child
* + 后代选择器:.the-ancestor .the-descendant
* + 跨自定义组件的后代选择器:.the-ancestor >>> .the-descendant
* + 多选择器的并集:#a-node, .some-other-nodes
*/
select(selector: string): NodesRef;
/**
* 在当前页面下选择匹配选择器selector的节点,返回一个NodesRef对象实例。
* 与selectorQuery.selectNode(selector)不同的是,它选择所有匹配选择器的节点。
*/
selectAll(selector: string): NodesRef;
/**
* 选择显示区域,可用于获取显示区域的尺寸、滚动位置等信息
* 返回一个NodesRef对象实例。
*/
selectViewport(): NodesRef;
/**
* 执行所有的请求
* 请求结果按请求次序构成数组,在callback的第一个参数中返回。
*/
exec(callback?: (result: any[]) => void): void;
}
/**
* 获取一个节点查询对象 SelectorQuery。
*
* @param page 可以指定 page 属性,默认为当前页面
* @returns
*/
function createSelectorQuery(page?: any): SelectorQuery;
// #endregion
// #region 级联选择 https://docs.alipay.com/mini/api/ewdxl3
interface MultiLevelSelectItem {
name: string;
subList?: MultiLevelSelectItem[] | undefined;
}
interface MultiLevelSelectOptions extends BaseOptions {
title?: string | undefined; // 标题
list?: MultiLevelSelectItem[] | undefined; // 选择数据列表
name?: string | undefined; // 条目名称
subList?: MultiLevelSelectItem[] | undefined; // 子条目列表
success?(res: {
success: boolean; // 是否选择完成,取消返回false
result: MultiLevelSelectItem[]; // 选择的结果,如[{“name”:”杭州市”},{“name”:”上城区”},{“name”:”古翠街道”}]
}): void;
}
function multiLevelSelect(options?: MultiLevelSelectOptions): void;
// #endregion
}
// 开放接口
declare namespace my {
// #region 用户授权 https://docs.alipay.com/mini/api/openapi-authorize
interface GetAuthCodeOptions extends BaseOptions {
scopes?: string | string[] | undefined; // 授权类型,默认 auth_base。支持 auth_base(静默授权)/ auth_user(主动授权) / auth_zhima(芝麻信用)
success?(res: {
authCode: string; // 授权码
authErrorScope: {
[scope: string]: number;
}; // 失败的授权类型,key是授权失败的 scope,value 是对应的错误码
authSucessScope: string[]; // 成功的授权 scope
}): void;
}
/**
* 获取授权码。
* 详细用户授权接入参考 [指引](https://docs.alipay.com/mini/introduce/auth)。
*/
function getAuthCode(options: GetAuthCodeOptions): void;
// #endregion
// #region 客户端获取会员信息 https://docs.alipay.com/mini/api/userinfo
interface GetAuthUserInfoOptions extends BaseOptions {
success?(res: {
nickName: string; // 用户昵称
avatar: string; // 用户头像链接
}): void;
}
/**
* 客户端获取会员信息
* 获取会员信息首先需要获取用户授权,详细会员信息获取参考[指引](https://docs.alipay.com/mini/introduce/auth),采用 jsapi 调用的方式。
*/
function getAuthUserInfo(options: GetAuthUserInfoOptions): void;
// #endregion
// #region 小程序唤起支付 https://docs.alipay.com/mini/api/openapi-pay
interface TradePayOptions extends BaseOptions {
tradeNO?: string | undefined; // 接入小程序支付时传入此参数。此参数为支付宝交易号
success?(res: {
// resultCode | 描述
// -----------|------
// 9000 | 订单支付成功
// 8000 | 正在处理中
// 4000 | 订单支付失败
// 6001 | 用户中途取消
// 6002 | 网络连接出错
// 6004 | 支付结果未知(有可能已经支付成功),请查询商户订单列表中订单的支付状态
// 99 | 用户点击忘记密码导致快捷界面退出(only iOS)
resultCode: string;
}): void;
}
/**
* 发起支付。
* 详细接入支付方式参考[指引](https://docs.alipay.com/mini/introduce/pay)。
* @param options
*/
function tradePay(options: TradePayOptions): void;
// #endregion
// #region 支付代扣签约 https://docs.alipay.com/mini/api/pay-sign
interface PaySignCenterOptions extends BaseOptions {
signStr: string; // 签约字符串
}
/**
* 签约中心
*
* 返回码 | 含义
* ------|------
* 7000 | 协议签约成功
* 7001 | 签约结果未知(有可能已经签约成功),请根据外部签约号查询签约状态
* 7002 | 协议签约失败
* 6001 | 用户中途取消
* 6002 | 网络连接错误 * @param options
*/
function paySignCenter(options: PaySignCenterOptions): void;
// #endregion
// #region 小程序二维码 https://docs.alipay.com/mini/api/openapi-qrcode
// @see https://docs.alipay.com/mini/api/openapi-qrcode
// @see https://docs.alipay.com/mini/introduce/qrcode
// #endregion
// #region 跳转支付宝卡包 https://docs.alipay.com/mini/api/card-voucher-ticket
/**
* 打开支付宝卡列表。
* 有关支付宝卡包详细功能,见[支付宝卡包产品介绍](https://docs.alipay.com/mini/introduce/voucher)
*/
function openCardList(): void;
interface OpenMerchantCardList extends BaseOptions {
partnerId: string; // 商户编号
}
/**
* 打开支付宝卡列表。
* 有关支付宝卡包详细功能,见[支付宝卡包产品介绍](https://docs.alipay.com/mini/introduce/voucher)
* @param options
*/
function openMerchantCardList(options: OpenMerchantCardList): void;
interface OpenCardDetailOptions extends BaseOptions {
passId: string; // 卡实例Id
}
/**
* 打开当前用户的某张卡的详情页
* 有关支付宝卡包详细功能,见[支付宝卡包产品介绍](https://docs.alipay.com/mini/introduce/voucher)
*
* passId获取方式:
* 1)通过alipass创建的卡
* 调用alipay.pass.instance.add(支付宝pass新建卡券实例接口)接口,在出参“result”中可获取
* 2)通过会员卡创建的卡
* 调用alipay.marketing.card.query(会员卡查询)接口,在schema_url中可获取,具体参数为“p=xxx”,xxx即为passId。
*/
function openCardDetail(options: OpenCardDetailOptions): void;
/**
* 打开支付宝券列表
* 有关支付宝卡包详细功能,见[支付宝卡包产品介绍](https://docs.alipay.com/mini/introduce/voucher)
*
* @param options
*/
function openVoucherList(): void;
interface OpenMerchantVoucherListOptions extends BaseOptions {
partnerId: string; // 商户编号
}
/**
* 打开当前用户的某个商户的券列表
* 有关支付宝卡包详细功能,见[支付宝卡包产品介绍](https://docs.alipay.com/mini/introduce/voucher)
*/
function openMerchantVoucherList(options: OpenMerchantVoucherListOptions): void;
interface OpenVoucherDetailOptions1 extends BaseOptions {
passId: string; // 券实例Id,调用券发放接口可以获取该参数(如果传入了partnerId和serialNumber则不需传入)
}
interface OpenVoucherDetailOptions2 extends BaseOptions {
partnerId: string; // 商户编号,以 2088 为开头(如果传入了passId则不需传入)
serialNumber: string; // 序列号,调用新建卡券模板可以获取该参数(如果传入了passId则不需传入)
}
/**
* 打开当前用户的某张券的详情页(非口碑)
* 有关支付宝卡包详细功能,见[支付宝卡包产品介绍](https://docs.alipay.com/mini/introduce/voucher)
*/
function openVoucherDetail(options: OpenVoucherDetailOptions1 | OpenVoucherDetailOptions2): void;
interface OpenKBVoucherDetailOptions1 extends BaseOptions {
passId: string; // 卡实例Id(如果传入了partnerId和serialNumber则不需传入)
}
interface OpenKBVoucherDetailOptions2 extends BaseOptions {
partnerId: string; // 商户编号(如果传入了passId则不需传入)
serialNumber: string; // 序列号(如果传入了passId则不需传入)
}
/**
* 打开当前用户的某张券的详情页(口碑)
* 有关支付宝卡包详细功能,见[支付宝卡包产品介绍](https://docs.alipay.com/mini/introduce/voucher)
*/
function openKBVoucherDetail(options: OpenKBVoucherDetailOptions1 | OpenKBVoucherDetailOptions2): void;
/**
* 打开支付宝票列表。
* 有关支付宝卡包详细功能,见[支付宝卡包产品介绍](https://docs.alipay.com/mini/introduce/voucher)
*/
function openTicketList(): void;
interface OpenMerchantTicketListOptions extends BaseOptions {
partnerId: string; // 商户编号
}
/**
* 打开某个商户的票列表
* 有关支付宝卡包详细功能,见[支付宝卡包产品介绍](https://docs.alipay.com/mini/introduce/voucher)
*/
function openMerchantTicketList(options: OpenMerchantTicketListOptions): void;
interface OpenTicketDetailOptions1 extends BaseOptions {
passId: string; // 卡实例Id(如果传入了partnerId和serialNumber则不需要传入passId)
}
interface OpenTicketDetailOptions2 extends BaseOptions {
partnerId: string; // 商户编号(如果传入了passId则不需要传入partnerId)
serialNumber: string; // 序列号(如果传入了passId则不需要传入serialNumber)
}
/**
* 打开当前用户的某张票的详情页
*
* 有关支付宝卡包详细功能,见[支付宝卡包产品介绍](https://docs.alipay.com/mini/introduce/voucher)
*/
function openTicketDetail(options: OpenTicketDetailOptions1 | OpenTicketDetailOptions2): void;
// #endregion
// #region 会员开卡授权 https://docs.alipay.com/mini/api/add-card-auth
interface AddCardAuthResult {
success: true | boolean; // true 表示领卡成功
resultStatus: string; // 9000 表示成功
result: {
app_id: string; // 应用id
auth_code: string; // 授权码,用于换取authtoken
state: string; // 授权的state
scope: string; // 授权scope
template_id: string; // 会员卡模板Id
request_id: string; // 会员卡表单信息请求Id
out_string: string; // 会员卡领卡链接透传参数
};
}
interface AddCardAuthResult {
success: false | boolean; // false 表示领卡失败
/**
* 失败的错误码
* 领卡失败 code 说明
* 名称 | 类型 | 说明
* -----|-----|-----
* JSAPI_SERVICE_TERMINATED | String | 用户取消
* JSAPI_PARAM_INVALID | String | url 为空或非法参数
* JSAPI_SYSTEM_ERROR | String | 系统错误
*/
code: string;
}
interface AddCardAuthOptions extends BaseOptions {
/**
* 开卡授权的页面地址,从alipay.marketing.card.activateurl.apply接口获取
*/
url: string;
success?(res: AddCardAuthResult): void;
}
/**
* 小程序唤起会员开卡授权页面,小程序接入会员卡[点此查看](https://docs.alipay.com/mini/introduce/card)
*/
function addCardAuth(options: AddCardAuthOptions): void;
// #endregion
// #region 芝麻认证 https://docs.alipay.com/mini/api/zm-service
interface StartZMVerifyOptions extends BaseOptions {
bizNo: string; // 认证标识
success?(res: {
token: string; // 认证标识
passed: string; // 认证是否通过
reason?: string | undefined; // 认证不通过原因
}): void;
}
/**
* 芝麻认证接口,调用此接口可以唤起芝麻认证页面并进行人脸身份验证。
* 有关芝麻认证的产品和接入介绍,详见 [芝麻认证](https://docs.alipay.com/mini/introduce/zm-verify)。
* 需要通过蚂蚁开发平台,调用certification.initialize接口进行[认证初始化](https://docs.alipay.com/zmxy/271/105914)。获得biz_no 后,方能通过以下接口激活芝麻认证小程序。
*/
function startZMVerify(options: StartZMVerifyOptions): void;
// #endregion
// #region 信用借还 https://docs.alipay.com/mini/api/zmcreditborrow
interface ZMCreditBorrowOptions extends BaseOptions {
/**
* 外部订单号,需要唯一,由商户传入,芝麻内部会做幂等控制,格式为:yyyyMMddHHmmss+随机数
*/
out_order_no: string;
/**
* 信用借还的产品码,传入固定值:w1010100000000002858
*/
product_code: string;
/**
* 物品名称,最长不能超过14个汉字
*/
goods_name: string;
/**
* 租金单位,租金+租金单位组合才具备实际的租金意义。
* 取值定义如下:
* DAY_YUAN: 元 / 天
* HOUR_YUAN: 元 / 小时
* YUAN: 元
* YUAN_ONCE: 元 / 次
*/
rent_unit: string;
/**
* 租金,租金 + 租金单位组合才具备实际的租金意义。
* > 0.00元,代表有租金
* = 0.00元,代表无租金,免费借用
* 注:参数传值必须 >= 0,传入其他值会报错参数非法
*/
rent_amount: string;
/**
* 押金,金额单位:元。
* 注:不允许免押金的用户按此金额支付押金;当物品丢失时,赔偿金额不得高于该金额。
*/
deposit_amount: string;
/**
* 该字段目前默认传Y;
* 是否支持当借用用户信用不够(不准入)时,可让用户支付押金借用:
* Y: 支持
* N: 不支持
* 注:支付押金的金额等同于deposit_amount。
*/
deposit_state?: string | undefined; // 该字段目前默认传Y;
/**
* 回调到商户的小程序schema地址。说明:商户的回调地址可以在商户后台里进行配置,服务端回调时,首先根据参数:invoke_type 查询是否有对应的配置地址,如果有,则使用已定义的地址,否则,使用该字段定义的地址执行回调;
* 参考表格下方的说明一;
* 小程序回调地址参考表格下方的说明三;
* 说明一:
* 支付宝商户账号登录我的商家服务打开入口链接;
* 商家服务中选择“您可能需要->信用借还”或者点击链接;
* 场景ID配置->配置新ID,选择对应的业务类型、服务类目和联盟,将生成的场景ID作为credit_biz的值传入即可;
* 回调地址配置->设置小程序回调地址,注意:若设置了该回调地址,则接口my.zmCreditBorrow中的入参invoke_return_url将会失效,以该处设置为准;
* 说明三:
* 小程序回调地址示例一:alipays://platformapi/startapp?appId=1999;
* 小程序回调地址示例二:alipays://platformapi/startapp?appId=1999&page=pages/map;
*/
invoke_return_url?: string | undefined;
/**
* 商户访问蚂蚁的对接模式,默认传TINYAPP:
* TINYAPP:回跳至小程序地址;
* WINDOWS:支付宝服务窗,默认值;
*/
invoke_type?: "TINYAPP" | "TINYAPP" | "WINDOWS" | string | undefined;
/**
* 信用业务服务,注意:该字段不能为空,且必须根据说明的指引配置商户专属的场景ID,商户自助接入时,登录后台可配置场景ID,将后台配置的场景ID作为该字段的输入;
* 参考说明一自助进行配置;
*/
credit_biz: string;
/**
* 商户订单创建的起始借用时间,格式:YYYY - MM - DD HH: MM: SS。如果不传入或者为空,则认为订单创建起始时间为调用此接口时的时间。
*/
borrow_time?: string | undefined;
/**
* 到期时间,不允许为空,请根据实际业务合理设置该值,格式:YYYY - MM - DD HH: MM: SS,是指最晚归还时间,表示借用用户如果超过此时间还未完结订单(未归还物品或者未支付租金)将会进入逾期状态,芝麻会给借用用户发送催收提醒;需要晚于borrow_time。
*/
expiry_time: string;
/**
* 借用用户的手机号码,可选字段。推荐商户传入此值,会将此手机号码与用户身份信息进行匹配验证,防范欺诈风险。
*/
mobile_no?: string | undefined;
/**
* 物品借用地点的描述,便于用户知道物品是在哪里借的。可为空
*/
borrow_shop_name?: string | undefined;
/**
* 租金的结算方式,非必填字段,默认是支付宝租金结算支付 merchant:表示商户自行结算,信用借还不提供租金支付能力; alipay:表示使用支付宝支付功能,给用户提供租金代扣及赔偿金支付能力;
*/
rent_settle_type?: "merchant" | "alipay" | string | undefined;
/**
* 商户请求状态上下文。商户发起借用服务时,需要在借用结束后返回给商户的参数,格式:json;
* 如果json的某一项值包含中文,请使用encodeURIComponent对该值进行编码;
* @example
* var ext = {
* name: encodeURIComponent('名字')
* };
* var obj = {
* invoke_state: JSON.stringify(ext)
* }
*/
invoke_state?: string | undefined;
/**
* 租金信息描述, 长度不超过14个汉字,只用于页面展示给C端用户,除此之外无其他意义。
*/
rent_info?: string | undefined;
/**
* 借用用户的真实姓名,非必填字段。但name和cert_no必须同时非空,或者同时为空,一旦传入会对用户身份进行校验。
*/
name?: string | undefined;
/**
* 借用用户的真实身份证号,非必填字段。但name和cert_no必须同时非空,或者同时为空,一旦传入会对用户身份进行校验。
*/
cert_no?: string | undefined;
/**
* 借用用户的收货地址,可选字段,最大长度128。推荐商户传入此值,会将此手机号码与用户身份信息进行匹配验证,防范欺诈风险。
*/
address?: string | undefined;
success?(res: {
/**
* 6001 用户取消了业务流程
* 6002 网络异常
* 9000 成功
* 4000 系统异常
*/
resultStatus: "6001" | "6002" | "9000" | "4000" | string;
result: {
/**
* 商户发起借用服务时传入的参数,需要在借用结束后返回给商户的参数
* @example
* {"user_name":"john"}
*/
invoke_state: string;
/**
* 外部订单号,需要唯一,由商户传入,芝麻内部会做幂等控制,格式为:yyyyMMddHHmmss+4位随机数
* @example
* 201610010000283627
*/
out_order_no: string;
/**
* 芝麻信用借还订单号
* @example
* 10020027631
*/
order_no: string;
/**
* 是否准入:Y:准入;N:不准入(该字段目前无实际意义)
*/
admit_state: "Y" | "N" | string;
/**
* 物品借用/租赁者的用户id
* @example
* 2088202924240029
*/
user_id: string;
callbackData: any; // todo only in example
};
}): void;
}
function zmCreditBorrow(options: ZMCreditBorrowOptions): void;
// #endregion
// #region 文本风险识别 https://docs.alipay.com/mini/api/text-identification
type TextRiskIdentificationType = "keyword" | "0" | "1" | "2" | "3" | string;
interface TextRiskIdentificationOptions extends BaseOptions {
/**
* 需要进行风险识别的文本内容
*/
content: string;
/**
* 识别类型:keyword 表示关键词、0 表示广告、1表示涉政、2表示涉黄、3表示低俗辱骂
*/
type: TextRiskIdentificationType[];
success?(res: {
result: {
/**
* 目标内容文本识别到的类型,keyword 表示关键词、0 表示广告、1表示涉政、2表示涉黄、3表示低俗辱骂
*/
type: TextRiskIdentificationType;
/**
* 仅当识别命中了 type 为 keyword 时,才会返回该字段
*/
hitKeywords?: string[] | undefined;
/**
* 识别命中得分,最高分100分。仅当识别没有命中 keyword ,但入参中包含了广告或涉政或涉黄时,才会返回该字段
*/
score?: string | undefined;
};
fail?(res: {
/**
* 识别错误码
*/
error: string;
/**
* 识别错误消息
*/
errorMessage: string;
}): void;
}): void;
}
/**
* 文本风险识别, **支付宝客户端10.1.10及以上版本支持。**详细接入参考[指引](https://docs.alipay.com/mini/introduce/text-identification)
*/
function textRiskIdentification(options: TextRiskIdentificationOptions): void;
// #endregion
// #region 小程序跳转 https://docs.alipay.com/mini/api/open-miniprogram
interface NavigateToMiniProgramOptions extends BaseOptions {
/**
* 要跳转的目标小程序appId
*/
appId: string;
/**
* 打开的页面路径,如果为空则打开首页
*/
path?: string | undefined;
/**
* 需要传递给目标小程序的数据,目标小程序可在 App.onLaunch() ,App.onShow() 中获取到这份数据
*/
extraData?: any;
/**
* 要打开的小程序版本,有效值 develop(开发版),trial(体验版),release(正式版) ,仅在当前小程序为开发版或体验版时此参数有效;如果当前小程序是正式版,则打开的小程序必定是正式版。默认值 release
*/
envVersion?: "develop" | "trial" | "release" | string | undefined;
}
/**
* 跳转到其他小程序。详细接入参考[指引](https://docs.alipay.com/mini/introduce/open-miniprogram)
* @param options
*/
function navigateToMiniProgram(options: NavigateToMiniProgramOptions): void;
interface NavigateBackMiniProgramOptions extends BaseOptions {
/**
* 需要传递给目标小程序的数据,目标小程序可在 App.onLaunch(),App.onShow() 中获取到这份数据
*/
extraData?: any;
}
/**
* 跳转回上一个小程序,只有当另一个小程序跳转到当前小程序时才会能调用成功
*/
function navigateBackMiniProgram(options: NavigateBackMiniProgramOptions): void;
// #endregion
// #region webview组件控制 https://docs.alipay.com/mini/api/webview-context
interface WebViewContext {
postMessage(param: any): void;
}
/**
* 创建并返回 web-view 上下文 webViewContext 对象。
*
* @param webviewId 要创建的web-view所对应的id属性
*/
function createWebViewContext(webviewId: string): WebViewContext;
// #endregion
}
// 多媒体
declare namespace my {
// #region 图片 https://docs.alipay.com/mini/api/media-image
type ImageSourceType = "album" | "camera";
interface ChooseImageOptions extends BaseOptions {
/** 最大可选照片数,默认1张 */
count: number;
/** 相册选取或者拍照,默认 [‘camera’,‘album’] */
sourceType: ImageSourceType[];
/** 成功则返回图片的本地文件路径列表 tempFilePaths */
success(res: {
/**
* 图片文件描述
*/
apFilePaths: string[];
}): void;
}
/**
* 从本地相册选择图片或使用相机拍照。
*/
function chooseImage(options: Partial<ChooseImageOptions>): void;
interface GenerateImageFromCodeOptions extends BaseOptions {
code: string;
format: "QRCODE";
width: number;
/**
* @defaultValue 'H'
*/
correctLevel?: "L" | "M" | "Q" | "H";
success?(res: { image: string }): void;
}
/**
* 生成二维码,由客户端生成,速度快且不耗流量。文档详见(https://opendocs.alipay.com/mini/api/media/image/my.generateimagefromcode)
* @param options
*/
function generateImageFromCode(options: GenerateImageFromCodeOptions): void;
interface PreviewImageOptions extends BaseOptions {
/** 当当前显示图片索引,默认 0 */
current?: number | undefined;
/** 要预览的图片链接列表 */
urls: string[];
}
/**
* 预览图片。
*/
function previewImage(options: PreviewImageOptions): void;
interface SaveImageOptions extends BaseOptions {
/**
* 要保存的图片链接
*/
url: string;
success?(res: { errMsg: string }): void;
}
/**
* @deprecated
* 保存在线图片到手机相册。文档详见(https://opendocs.alipay.com/mini/api/media/image/my.saveimage)
*/
function saveImage(options: SaveImageOptions): void;
interface SaveImageToPhotosAlbumOptions extends BaseOptions {
/**
* 要保存的图片链接