78 lines
1.5 KiB
JavaScript
78 lines
1.5 KiB
JavaScript
/**
|
||
* 多端平台抽象基类(父类)
|
||
* 定义所有端必须实现的方法
|
||
*/
|
||
class BasePlatform {
|
||
constructor() {
|
||
if (new.target === BasePlatform) {
|
||
throw new Error('BasePlatform 是抽象类,不能直接实例化');
|
||
}
|
||
this.code = ''; // 平台代码(WEB/MP/APP)
|
||
this.env = ''; // 运行环境标识
|
||
}
|
||
|
||
getPayData(url, data) {
|
||
throw new Error('子类必须实现 getPayData 方法');
|
||
}
|
||
/**
|
||
*
|
||
*/
|
||
chooseAddress() {
|
||
return new Promise((resolve, reject) => {
|
||
throw new Error('子类必须实现 chooseAddress 方法');
|
||
});
|
||
}
|
||
/**
|
||
* 支付方法(子类必须实现)
|
||
* @param {number} amount - 支付金额(分)
|
||
* @param {string} orderId - 订单号
|
||
*/
|
||
pay({
|
||
data
|
||
}) {
|
||
throw new Error('子类必须实现 pay 方法');
|
||
}
|
||
|
||
/**
|
||
* 分享方法(子类必须实现)
|
||
* @param {object} params - 分享参数 { title, desc, image, url }
|
||
*/
|
||
share({
|
||
title,
|
||
desc,
|
||
link,
|
||
image
|
||
}) {
|
||
throw new Error('子类必须实现 share 方法');
|
||
}
|
||
|
||
/**
|
||
* 通用方法(所有端共用)
|
||
*/
|
||
getPlatformInfo() {
|
||
return {
|
||
code: this.code,
|
||
env: this.env,
|
||
ua: navigator?.userAgent || ''
|
||
};
|
||
}
|
||
|
||
downloadFile(url) {
|
||
return new Promise((resolve, reject) => {
|
||
throw new Error('子类必须实现 downloadFile 方法');
|
||
});
|
||
}
|
||
AppLaunch(options) {
|
||
throw new Error('子类必须实现 AppLaunch 方法');
|
||
}
|
||
/**
|
||
* 获取订单号
|
||
*/
|
||
getOrderNo() {
|
||
throw new Error('子类必须实现 getOrderNo 方法');
|
||
}
|
||
delOrderNo(){
|
||
|
||
}
|
||
}
|
||
export default BasePlatform; |