# appForPDA 安卓手持巡检仪 App,为北京安科院设计,采用 **原生 Android 壳 + WebView** 形式。 ## 项目简介 当前仓库已经是一个可直接使用 **Android Studio** 打开的完整 Android 工程。 应用基础信息: - 应用名称:`安全检查` - 包名:`com.zjznai.safetycheck` - 最低支持版本:Android 7.0(`minSdk 24`) - 目标版本:Android 15(`targetSdk 35`) - WebView 启动地址:`http://192.168.1.8/h5/#/pages/views/login/login` ## 技术方案 - Kotlin - Gradle Kotlin DSL - AndroidX - Material 3 - 单 Activity WebView 壳结构 - 独立 `SplashActivity` 启动页 - ViewBinding ## 已实现功能 ### 1. 启动页(Launch Page) - 应用启动先进入白底 launch 页面 - 中间展示 app logo - 底部展示版权与技术支持信息 - 启动页结束后自动进入主页面 ### 2. WebView 壳能力 - 启动后自动加载指定 H5 地址 - 隐藏 WebView 垂直/水平滚动条 - 返回键优先回退网页历史 - `tel:`、`mailto:` 等外部 scheme 交由系统处理 - 支持沉浸式全屏显示 ### 3. 网络与离线态处理 - 仅对白名单地址启用 HTTP 明文访问 - 主页面加载失败时拦截 WebView 默认错误页 - 不暴露默认错误页中的访问链接 - 区分: - 无网络连接 - 服务暂时不可用 - 提供原生风格的全屏异常状态页 - 网络恢复后自动重新加载页面 ### 4. H5 权限能力桥接 - 支持 H5 请求摄像头权限 - 支持 H5 请求麦克风权限(生产 HTTPS 环境下可正常走 WebView 权限链路) - 支持 H5 文件上传/相册选择 - 支持 H5 图片拍照上传 - 通过 `FileProvider` 安全回传拍摄结果 ### 5. UI 与品牌 - 应用名称为“安全检查” - 应用图标使用仓库内提供的 `safetychecklogopda.png` - 当前主题主色:`#0183FA` ## 构建与运行 ### 使用 Android Studio 1. 使用 Android Studio 打开仓库根目录。 2. 等待 Gradle Sync 完成。 3. 连接真机或启动模拟器。 4. 运行 `app` 模块。 ### 命令行构建 在仓库根目录执行: ```bash ./gradlew assembleDebug ``` 生成的调试包路径: ```text app/build/outputs/apk/debug/app-debug.apk ``` ## 权限说明 当前应用声明了以下权限: - `INTERNET` - `ACCESS_NETWORK_STATE` - `CAMERA` - `RECORD_AUDIO` 说明: - `CAMERA` 用于 H5 拍照、摄像头调用 - `RECORD_AUDIO` 用于 H5 麦克风调用 - `ACCESS_NETWORK_STATE` 用于区分网络异常状态并在网络恢复后自动重试 ## 开发说明 ### 关于 HTTP 与 HTTPS 当前测试地址使用的是局域网 HTTP: ```text http://192.168.1.8/h5/#/pages/views/login/login ``` 因此项目中配置了受控的明文访问能力用于测试环境。 生产环境如果切换为 HTTPS,WebView 对摄像头/麦克风等 Web 能力的支持会更完整、更符合浏览器安全策略。 ## 当前适用场景 本项目适合用于: - Android 手持终端/PDA 场景 - 原有 H5 系统的原生壳封装 - 需要摄像头、麦克风、文件上传桥接能力的 WebView 应用