Skip to content

Android & Capacitor

概述

StrawMoneyBook 以 Capacitor 8 包裝 Vue SPA 為 Android App,並透過原生 plugin 整合 Google Identity、SQLite SQLCipher、桌面小工具、Wear OS companion、安全鎖與銀行自動化等能力。

Capacitor 架構

mermaid
flowchart TB
  WebLayer[Vue WebView]
  CapPlugins[Capacitor Plugins]
  Native[Android Java/Kotlin]
  Wear[:wear Compose Module]
  WebLayer --> CapPlugins
  CapPlugins --> Native
  Native --> Wear

入口:frontend/android/

本機資料(Android)

  • SQLCipher 加密:straw_money_bookSQLite.db
  • 初始化:Capacitor SQLite plugin + bootstrap.service.js
  • plugin-null 時只重試 primary DB,禁止切空 recovery DB(smb298)

原生 Plugin(節錄)

Plugin / 類別用途
GoogleIdentityPlugin.javaGoogle 登入、server auth code
MainActivity.javaOAuth result 轉送
HomeWidget plugin5 種桌面小工具
Local Notifications記帳提醒

桌面小工具

Provider用途點擊導向
StrawMoneyWidgetProvider月收支總覽/analysis
StrawMoneyPieChartWidgetProvider圓餅圖/analysis
StrawMoneyBarChartWidgetProvider長條圖/analysis
StrawMoneyQuickAddWidgetProvider快速記帳/transactions/quick-add
StrawMoneyAiBookkeepingWidgetProviderAI 記帳/ai-auto-bookkeeping

資料由 home-widget.service.js 寫入 SharedPreferences,原生繪製 Bitmap。

Wear OS Companion

  • 獨立 :wear Compose 模組 + Tile
  • MessageClient /smb/v1/* nearby-first,寫入同一 SQLCipher DB(不經 WebView)
  • Room outbox v2;Wear Compose 1.6.2(禁 1.4.x + targetSdk≥35 閃退)
  • Play 測試 / 正式分軌上傳(phone + wear 各一 AAB);預設測試軌道 internal(未拍板不改 play-testing-channel.json
  • 長表單 route 使用 meta.hideAppChrome(quick-add、報表列印等),BottomNav 不遮 CTA

詳見 Wear CompanionPlaywright App Shell

安全與 UX

能力Service
生物辨識鎖security-lock.service.js
Android 返回鍵app-runtime.service.js
語音輸入AI 記帳整合 Capacitor speech
主題 / modern UItheme.service.jsapple-ui.css

Web 測試版

Production web SPA:https://www.strawmb.com/app/(hash router,VITE_WEB_HASH_ROUTER=true),連 api.strawmb.com。本機 npm run dev 亦預設連營運 API。

與其他域

下一步

StrawMoneyBook Developer Guide