အနှစ်ချုပ်
Device bridge များကို plugin ထဲတွင် ကိုယ်တိုင် မရေးဘဲ ဤ platform API များကို ဦးစားပေး အသုံးပြုပါ။ Package သည် Web / Electron / Capacitor ကို စုစည်းပေးသောကြောင့် plugin များသည် API တစ်ခုတည်းကို ခေါ်ရုံဖြင့် Platforms က သင့်လျော်သော implementation သို့ လမ်းညွှန်ပေးပါသည်။
- Package: @quan-erp/shared-frontend-core
- System ဝန်ဆောင်မှုများကို static .instance (သို့မဟုတ် Doc ပါ factory) ဖြင့် ခေါ်ပါ
- အတွင်းပိုင်း Platforms detection က native / web bridge ကို ရွေးချယ်ပါသည်
- Core wrapper ရှိပြီးသား ဖြစ်ပါက plugin ထဲတွင် Capacitor / Electron API ကို တိုက်ရိုက် မရေးရပါ
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";Singleton ပုံစံ
Hardware နှင့် system ဝန်ဆောင်မှုအများစုသည် singleton ဖြစ်ပါသည်။ State နှင့် listener များ တစ်ခုတည်း ဖြစ်နေစေရန် .instance ကို အသုံးပြုရပါသည်။
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()`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}စာရင်း
ဤအပိုင်းတွင် အမျိုးအစားအလိုက် ကြည့်ရှုနိုင်ပါသည်။
- Sensors — accelerometer၊ gyroscope၊ orientation၊ hand behavior
- Media & hardware — camera၊ microphone၊ printer၊ vibration၊ clipboard
- Connectivity — bluetooth၊ network၊ battery၊ geolocation
- Storage — filesystem၊ SQLite၊ shared preferences
- System — platform၊ device tier၊ locale၊ notifications၊ PluginAPI၊ assets၊ backend URL၊ number formatter
- Utilities — version helpers၊ RequestDto / ResponseDto၊ toast၊ pagination DTO
စည်းကမ်းများ
start / listen API တိုင်းအတွက် lifecycle ပုံစံမှာ permission တောင်းခြင်း → start → unmount တွင် stop / unsubscribe ဖြစ်ပါသည်။
- @quan-erp/shared-frontend-core မှသာ import လုပ်ပါ — node_modules အတွင်း deep path မသုံးရပါ
- API တွင် requestPermission ရှိပါက camera / mic / location / bluetooth မသုံးမီ ခွင့်ပြုချက် တောင်းရပါသည်
- မျက်နှာပြင် unmount သောအခါ sensor နှင့် media stream များကို stop လုပ်ရပါသည် (start / stop တွဲ)
- Gryoscope class ကို import လုပ်သည့်အခါ source typo အတိုင်း စာလုံးပေါင်း မပြင်ရပါ
- Plugin အချင်းချင်း သင်္ကေတအတွက် PluginAPI; plugin asset URL အတွက် PluginAssets.network ကို အသုံးပြုပါ
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}, []);