/** * 多端平台抽象基类(父类) * 定义所有端必须实现的方法 */ class BasePlatform { constructor() { if (new.target === BasePlatform) { throw new Error('BasePlatform 是抽象类,不能直接实例化'); } this.code = ''; // 平台代码(WEB/MP/APP) this.env = ''; // 运行环境标识 this.config = null; this.version = '1.0.0'; } async getConfig() { return {}; } async appData() { } /** * 加载缓存 */ async loadCacheData() { } /** * 获取是否需要审核 * @returns {boolean} 是否需要审核 */ getIsCheck(tag) { return this.config?.isCheck ?? false; } 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 }, event) { 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(event) { throw new Error('子类必须实现 getOrderNo 方法'); } delOrderNo() { } /** * 获取用户中心菜单列表 * @returns {Array} 菜单项数组,每项包含id, show, title, icon, path和handler */ getUserMenuList() { return []; } /** * 导航到指定页面 * @param {Object} item 菜单项 */ navigateToPath(item) { } /** * 处理退出登录 */ handleLogout() { uni.showModal({ title: '提示', content: '确定要退出登录吗?', success: (res) => { if (res.confirm) { } } }); } /** * 开启调试 */ startDeb() { } /** * 关闭调试 */ closeDeb() { } getVersion() { return this.version; } getUserAgreement() { // navigateTo('/pages/guize/guize', { type: 4 }) } getPrivacyAgreement() { // navigateTo('/pages/guize/guize', { type: 5 }) } } export default BasePlatform;