演示

Platform APIs

@quan-erp/shared-frontend-core 的 API 参考 — 覆盖 Web、Desktop(Electron)、Mobile(Capacitor)的硬件传感器、媒体、连接、存储与系统服务。

概述

优先使用这些平台 API,不要在插件里重复实现设备桥接。

  • 包名:@quan-erp/shared-frontend-core
  • 通过 .instance 访问系统服务
  • Platforms 负责选择原生或 Web 桥
TSXimport surface
1import { 2 Camera, 3 Clipboard, 4 Network, 5 Platforms, 6 PluginAPI, 7 PluginAssets, 8 RequestDto, 9 ResponseDto, 10 toast, 11} from "@quan-erp/shared-frontend-core";

单例模式

多数硬件与系统服务是单例 — 使用 .instance。

TSXaccess pattern
1import { Camera, Network, Platforms } from "@quan-erp/shared-frontend-core"; 2 3const camera = Camera.instance; 4const network = Network.instance; 5 6const online = network.isOnline(); 7const onMobile = Platforms.isMobile(); 8const onDesktop = Platforms.isDesktop(); 9const onWeb = Platforms.isWeb(); 10 11// Always reuse .instance — do not `new Camera()`
TSXReact: branch by platform
1import { useMemo } from "react"; 2import { Platforms } from "@quan-erp/shared-frontend-core"; 3 4export function CaptureButton() { 5 const label = useMemo(() => { 6 if (Platforms.isMobile()) return "Take photo"; 7 if (Platforms.isDesktop()) return "Capture / upload"; 8 return "Upload image"; 9 }, []); 10 11 return <button type="button">{label}</button>; 12}

目录

Browse by category in this section.

  • Sensors
  • Media & hardware
  • Connectivity
  • Storage
  • System
  • Utilities

规则

权限 → start → 卸载时 stop。

  • 从 @quan-erp/shared-frontend-core 导入
  • 需要时先 requestPermission
  • 卸载时停止 sensor / stream
TSXcleanup template
1import { useEffect } from "react"; 2import { Accelerometer } from "@quan-erp/shared-frontend-core"; 3 4useEffect(() => { 5 const accel = Accelerometer.instance; 6 accel.start((data) => { 7 console.log(data); 8 }); 9 return () => { 10 accel.stop(); 11 }; 12}, []);