WebViewGold 是一款功能强大的 Android WebView 应用模板,可将网站/HTML 快速转换为原生 Android 应用,支持推送通知、广告集成、文件上传等多种功能。
项目分析报告:WebViewGold Android
项目概述
项目名称: WebViewGold for Android
包名: webviewgold.myappname
版本: v13.8
平台: Android
开发语言: Java
开发商: OnlineAppCreator
WebViewGold 是一款功能强大的 Android WebView 应用模板,可将网站/HTML 快速转换为原生 Android 应用,支持推送通知、广告集成、文件上传等多种功能。
功能描述
核心功能
- WebView 浏览: 将网站封装为原生应用
- 推送通知: 支持 OneSignal 和 Firebase FCM
- 广告集成: AdMob 横幅/插页式广告、AdSense
- 文件管理: 文件下载、图片保存
- 相机集成: 拍照、录像、文件上传
- 位置服务: GPS 定位支持
- NFC 支持: NFC 标签读取
- 深度链接: App Links 支持
- 二维码扫描: 内置二维码功能
- 内购支持: Google Play 内购 API
特色功能
- 离线 HTML 回退支持
- 自动刷新页面
- 滑动导航
- 下拉刷新
- pinch 缩放
- 防截图/录屏
- 深色模式支持
- 状态栏/导航栏自定义
主要模块
| 模块/类 | 功能说明 |
|---|---|
| WebViewApp | 应用类,初始化配置 |
| MainActivity | 主活动,WebView 容器 |
| CustomWebView | 自定义 WebView 组件 |
| SplashScreen/SplashScreenActivity | 启动页面 |
| AlertManager | 对话框管理 |
| MyFirebaseMessagingService | Firebase 消息服务 |
| GenericFileProvider | 文件提供者 |
| nfc/MyNfcActivity | NFC 功能 |
项目结构
android-webviewgold/
├── AndroidStudioSourceCode/
│ ├── app/src/main/
│ │ ├── java/webviewgold/myappname/
│ │ │ ├── WebViewApp.java # 应用类
│ │ │ ├── MainActivity.java # 主活动
│ │ │ ├── CustomWebView.java # 自定义 WebView
│ │ │ ├── Config.java # 配置类
│ │ │ ├── AlertManager.java # 对话框管理
│ │ │ ├── SplashScreen.java # 启动页
│ │ │ ├── SplashScreenActivity.java # 启动活动
│ │ │ ├── MyFirebaseMessagingService.java
│ │ │ ├── GenericFileProvider.java # 文件提供者
│ │ │ └── nfc/MyNfcActivity.java # NFC 活动
│ │ ├── res/ # 资源文件
│ │ └── AndroidManifest.xml
│ ├── inapp/ # 内购模块
│ ├── sample/ # 示例
│ └── build.gradle
├── WebViewGold_Android_v12.3/ # 旧版本
├── WebViewGold_Android_v13.8/ # 新版本
├── Documentation.html # 文档
└── Discount_Vouchers.html # 优惠券
核心业务逻辑
WebView 配置
// 支持 JavaScript
webView.getSettings().setJavaScriptEnabled(true);
// 支持 DOM 存储
webView.getSettings().setDomStorageEnabled(true);
// 支持文件上传
webView.getSettings().setAllowFileAccess(true);
// 硬件加速
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
推送通知流程
- OneSignal: 集成 OneSignal SDK,获取用户 ID
- Firebase: 使用 FCM 接收推送消息
- 深度链接: 点击通知打开指定 URL
文件下载流程
- 监听 WebView 下载请求
- 检查文件扩展名是否在允许列表中
- 请求存储权限
- 使用 DownloadManager 下载文件
- 通知用户下载完成
文件上传流程
- 监听文件选择请求
- 弹出选择对话框(相机/相册/文件)
- 获取文件 URI
- 传递给 WebView 处理
核心代码文件
| 文件路径 | 说明 |
|---|---|
Config.java |
核心配置类,包含所有可配置选项 |
MainActivity.java |
主活动,WebView 容器和事件处理 |
CustomWebView.java |
自定义 WebView,扩展功能 |
WebViewApp.java |
应用类,初始化 SDK |
AlertManager.java |
对话框管理(评分、Facebook 关注等) |
SplashScreenActivity.java |
启动活动 |
MyFirebaseMessagingService.java |
Firebase 消息服务 |
GenericFileProvider.java |
FileProvider 实现 |
配置选项 (Config.java)
基本配置
| 配置项 | 默认值 | 说明 |
|---|---|---|
| HOST | www.example.org [1] | 网站域名 |
| HOME_URL | https://www.example.org [2] | 首页 URL |
| ACTIVATE_PROGRESS_BAR | true | 显示加载进度条 |
| PHONE_ORIENTATION | portrait | 手机方向 |
| USER_AGENT | “” | 自定义 UserAgent |
功能开关
| 配置项 | 默认值 | 说明 |
|---|---|---|
| AUTO_REFRESH_ENABLED | false | 自动刷新 |
| FALLBACK_USE_LOCAL_HTML_FOLDER_IF_OFFLINE | false | 离线回退 |
| CLEAR_CACHE_ON_STARTUP | false | 启动时清除缓存 |
| ENABLE_SWIPE_NAVIGATE | false | 滑动导航 |
| ENABLE_PULL_REFRESH | false | 下拉刷新 |
| ENABLE_ZOOM | false | 缩放功能 |
| DISABLE_DARK_MODE | false | 禁用深色模式 |
| PREVENT_SCREEN_CAPTURE | false | 防截图 |
广告配置
| 配置项 | 默认值 | 说明 |
|---|---|---|
| SHOW_ADSENSE_AD | false | 显示 AdSense 广告 |
| SHOW_BANNER_AD | false | 显示横幅广告 |
| SHOW_FULL_SCREEN_AD | false | 显示插页式广告 |
| SHOW_AD_AFTER_X | 5 | 每 X 次点击显示广告 |
推送通知
| 配置项 | 默认值 | 说明 |
|---|---|---|
| PUSH_ENABLED | false | OneSignal 推送 |
| FIREBASE_PUSH_ENABLED | false | Firebase 推送 |
| IS_DEEP_LINKING_ENABLED | true | 深度链接 |
权限需求
<!-- 基本权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 位置权限 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 存储权限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 相机权限 -->
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<!-- 音频权限 -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<!-- 支付权限 -->
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />
<!-- 通知权限 -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<!-- 广告 ID -->
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
技术栈
| 技术 | 用途 |
|---|---|
| Android WebView | 核心浏览组件 |
| Firebase Cloud Messaging | 推送通知 |
| OneSignal | 推送通知服务 |
| Google AdMob | 广告展示 |
| Google Play Billing | 内购支付 |
| NFC | 近场通信 |
| DownloadManager | 文件下载 |
| FileProvider | 文件共享 |
部署步骤
配置步骤
- 购买授权: 在 CodeCanyon 购买许可证
- 配置 Config.java:
- 设置 HOME_URL 为你的网站地址
- 配置推送通知 ID
- 配置广告 ID
- 替换资源: 替换应用图标、启动图等
- Firebase 配置: 添加 google-services.json
- 生成签名 APK: 构建发布版本
可定制内容
- 应用名称和图标
- 主题颜色
- 启动页图片
- 广告位配置
- 推送通知设置
- 权限开关
优势特点
- 零编码: 无需编程知识,修改配置即可
- 功能丰富: 支持推送、广告、文件管理等
- 高性能: 硬件加速、缓存优化
- 易于维护: 代码结构清晰,注释详细
- 持续更新: 定期更新支持新特性
- 文档完善: 提供详细文档和视频教程
适用场景
- 网站转应用: 将现有网站快速打包为应用
- 电商应用: 在线商店移动化
- 新闻应用: 新闻网站应用化
- 企业应用: 企业内部系统移动化
- 博客应用: 博客平台移动化
总结
WebViewGold 是一款功能强大的 Android WebView 应用模板,适合将网站快速转换为原生 Android 应用。它提供了丰富的配置选项和集成功能,包括推送通知、广告系统、文件管理、相机集成等。代码结构清晰,文档完善,适合没有 Android 开发经验的用户快速创建专业级应用。
优势特点:
- 配置简单,无需编码
- 功能丰富,满足多种需求
- 性能优化,用户体验好
- 持续更新,支持新特性
- 文档完善,易于上手
注意事项:
- 需要购买许可证才能发布应用
- 部分高级功能需要额外配置
- 建议根据需求调整权限配置
引用链接
[1] www.example.org: http://www.example.org
[2]: https://www.example.org
资源在线 » WebViewGold 是一款功能强大的 Android WebView 应用模板,可将网站/HTML 快速转换为原生 Android 应用,支持推送通知、广告集成、文件上传等多种功能。