安卓手持巡检仪App,采用hybrid shell+webview形式

stoney b37906e9d8 构建pda应用,采用shell+webview,处理鉴权,网络等功能 5 napja
app b37906e9d8 构建pda应用,采用shell+webview,处理鉴权,网络等功能 5 napja
gradle b37906e9d8 构建pda应用,采用shell+webview,处理鉴权,网络等功能 5 napja
.gitignore b37906e9d8 构建pda应用,采用shell+webview,处理鉴权,网络等功能 5 napja
LICENSE 5819a304f2 Initial commit 6 napja
README.md b37906e9d8 构建pda应用,采用shell+webview,处理鉴权,网络等功能 5 napja
build.gradle.kts b37906e9d8 构建pda应用,采用shell+webview,处理鉴权,网络等功能 5 napja
gradle.properties b37906e9d8 构建pda应用,采用shell+webview,处理鉴权,网络等功能 5 napja
gradlew b37906e9d8 构建pda应用,采用shell+webview,处理鉴权,网络等功能 5 napja
gradlew.bat b37906e9d8 构建pda应用,采用shell+webview,处理鉴权,网络等功能 5 napja
safetychecklogopda.png b37906e9d8 构建pda应用,采用shell+webview,处理鉴权,网络等功能 5 napja
settings.gradle.kts b37906e9d8 构建pda应用,采用shell+webview,处理鉴权,网络等功能 5 napja

README.md

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 模块。

命令行构建

在仓库根目录执行:

./gradlew assembleDebug

生成的调试包路径:

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:

http://192.168.1.8/h5/#/pages/views/login/login

因此项目中配置了受控的明文访问能力用于测试环境。

生产环境如果切换为 HTTPS,WebView 对摄像头/麦克风等 Web 能力的支持会更完整、更符合浏览器安全策略。

当前适用场景

本项目适合用于:

  • Android 手持终端/PDA 场景
  • 原有 H5 系统的原生壳封装
  • 需要摄像头、麦克风、文件上传桥接能力的 WebView 应用