Files
SoonDesign/frontend-web/js/platform/bridge.js
T
24kycj 88c6ce8ccc 重构 monorepo 并完善网页端订阅与首页体验
- 迁移为 frontend-web、frontend-electron、backend-web 与 docker 部署结构
- 网页端:订阅门禁二次弹窗、套餐/支付组件化、顶栏分组对齐
- 首页:最近文件与模板库布局优化,缩略图对齐,下载与删除操作
- 新增管理后台、支付与云端文件 API,更新 README 与项目规范

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 18:17:39 +08:00

45 lines
1.6 KiB
JavaScript

/**
* 平台抽象层 - 统一接口定义
* 桌面端由 lib/platform/electron.js 实现,网页端由 lib/platform/web.js 实现。
* 业务代码通过 window.platformBridge 或兼容的 window.sysAPI / window.dialog 调用。
*/
(function () {
'use strict';
// 若已存在(由 electron 或 web 注入),则不覆盖
if (typeof window.platformBridge !== 'undefined') {
return;
}
// 默认空实现,避免未注入时报错(仅作占位,实际运行前必须注入 electron 或 web 实现)
function notImplemented() {
console.warn('[platform] bridge not injected');
return Promise.reject(new Error('Platform bridge not available'));
}
window.platformBridge = {
readHistory: notImplemented,
writeHistory: notImplemented,
readJsonFile: notImplemented,
showOpenDialog: notImplemented,
showSaveDialog: notImplemented,
writeFile: notImplemented,
readFile: notImplemented,
getAppVersion: function () { return Promise.resolve('0.0.0'); },
getLocale: function () { return 'zh'; },
getUserDataPath: function () { return ''; },
getSystemFonts: function () { return Promise.resolve([]); },
openDesignPage: function () {},
openFirstPage: function () {},
onClose: function () {},
runClose: function () {},
openHelp: function () {},
printPdf: notImplemented,
getScaleRate: function () { return typeof window !== 'undefined' ? (window.devicePixelRatio || 1) : 1; },
clipboard: {
readText: function () { return Promise.resolve(''); },
writeText: function () { return Promise.resolve(); }
}
};
})();