李岩岩 380f4ab4d6 feat(storage): 实现跨平台 Storage API 抽象层
- 添加统一的 IStorage 接口定义
- 实现 IndexedDBStorage (Web/Desktop)
- 实现 NativeStorage (Android/TV)
- 添加类型定义 (Subscription, Channel, SourceValidity等)
- 更新 Android/TV AssetReader 支持 SharedPreferences
- 安装 idb 库用于 IndexedDB 操作
2026-02-05 14:29:42 +08:00
..

Android WebView 壳

目录结构

android/
├── app/src/main/
│   ├── java/com/iptv/app/
│   │   └── MainActivity.java    # WebView 主活动
│   ├── res/
│   │   ├── layout/activity_main.xml
│   │   ├── values/
│   │   │   ├── strings.xml
│   │   │   ├── styles.xml
│   │   │   └── colors.xml
│   │   └── mipmap-*/           # 图标资源
│   ├── assets/
│   │   └── www/                # 打包的 Web 资源 (从 ui/dist-web 复制)
│   └── AndroidManifest.xml
├── build.gradle                # 项目级构建配置
├── settings.gradle
└── gradle.properties

构建步骤

1. 构建 Web UI

cd ../ui
npm install
npm run build:web

2. 复制资源到 Android

# 将构建好的 web 资源复制到 Android assets
cp -r ../ui/dist-web/* app/src/main/assets/www/

3. 构建 APK

./gradlew assembleDebug

APK 输出位置: app/build/outputs/apk/debug/app-debug.apk

开发模式

如需连接开发服务器测试,修改 MainActivity.java:

private static final String LOAD_MODE = "remote";
private static final String REMOTE_URL = "http://你的IP:5173";

功能特性

  • WebView 加载 Web UI
  • 全屏无标题栏
  • 下拉刷新
  • 返回键支持页面后退
  • 视频全屏自动横屏
  • 暗色主题

权限

  • INTERNET - 网络访问
  • ACCESS_NETWORK_STATE - 网络状态检测