/** * 多端平台抽象基类(父类) * 定义所有端必须实现的方法 */ 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;