妖火 APP 是一个基于 Vue2、uni-app 和 DCloud App-Plus 的妖火论坛第三方客户端。项目主要面向 Android App 使用,数据直接请求 https://yaohuo.me,不经过自建中转服务。
- 原作者:Redcker/yaohuo
- 二改作者:mmuni/yaohuo
- 当前仓库:JIUSIS/yaohuo
当前版本在二改版基础上继续适配 yaohuo.me,重点修复登录态同步、帖子详情、评论楼层解析、评论回复、私信和 Android 离线打包相关问题。
- 妖火论坛首页、分区列表、搜索和帖子详情浏览
- 登录、退出登录和本地 Cookie 同步
- 评论列表、多页评论、楼层回复和评论删除
- 私信列表、私信会话和发送私信
- 帖子附件、图片、表情和 HTML 内容渲染
- 支持 HBuilderX 云打包
- 支持 Android Studio + DCloud Android 离线 SDK 本地打包
- Vue 2.6
- uni-app / App-Plus
- DCloud HBuilderX CLI 依赖
- mp-html
- cheerio 0.22
- Android Studio
- DCloud Android 离线 SDK
.
├── App.vue
├── main.js
├── manifest.json
├── pages.json
├── components/ # 页面组件
├── pages/ # uni-app 页面
├── static/ # 静态图片
├── uni_modules/ # uni-ui、mp-html 等模块
├── utils/ # 解析、表情、认证等工具
├── local-android-build/ # Android 离线打包工程骨架
└── package.json
dist/、unpackage/、node_modules/、tools/ 和 Android 构建缓存不提交到仓库。离线打包需要的 JDK、Android SDK、DCloud Android SDK 请按本文说明在本地准备。
建议环境:
- Node.js 18 或 20
- npm
- HBuilderX 4.x
- Android Studio
- JDK 17
- Android SDK Platform 36
- Android SDK Build Tools 36.0.0
- DCloud Android 离线 SDK 5.08 或与 HBuilderX 对应的版本
DCloud 官方 Android 离线打包文档:
npm install如果依赖安装失败,建议删除 node_modules 后重新安装:
rm -rf node_modules
npm installWindows PowerShell:
Remove-Item node_modules -Recurse -Force
npm installnpm run dev:h5H5 只适合基础页面调试。登录态、系统 Cookie、App-Plus WebView 等能力需要在 App 环境测试。
npm run build:app-plus构建产物在:
dist/build/app-plus
该目录是 App-Plus 资源包,可导入 HBuilderX 或同步到 Android 离线工程。
- 使用 HBuilderX 打开项目根目录。
- 检查
manifest.json中的appid、应用名称、包名、图标和权限。 - 菜单选择
发行->原生App-云打包。 - 选择 Android,配置证书和包名。
- 提交云打包任务。
如果云打包安装后功能失效,优先检查:
manifest.json的appid是否和 DCloud 后台一致- Android 包名是否和 DCloud AppKey 绑定一致
- 是否使用了正确的
yaohuo.me域名 - 登录后是否能拿到
sidyaohuoCookie
本仓库包含 local-android-build/ 离线打包工程骨架。完整离线打包需要本地自行准备:
tools/
├── android-sdk/
├── dcloud-android-sdk-5.08/
└── jdk-17/
推荐版本:
compileSdkVersion 36
buildToolsVersion 36.0.0
Gradle 8.14.3
Android Gradle Plugin 8.12.0
JDK 17
从 DCloud Android 离线 SDK 中复制基础库到:
local-android-build/app/libs
至少需要:
lib.5plus.base-release.aar
uniapp-v8-release.aar
android-gif-drawable-1.2.29.aar
oaid_sdk_1.0.25.aar
breakpad-build-release.aar
utsplugin-release.aar
如果使用安装 APK、推送、地图、支付、分享等原生模块,需要按 DCloud 官方文档继续补充对应 AAR 和依赖。
在 local-android-build/local.properties 中写入本机 Android SDK 路径:
sdk.dir=D:/Android/Sdklocal.properties 是本机配置文件,不提交到仓库。
先构建 App-Plus:
npm.cmd run build:app-plus再把资源复制到离线工程:
robocopy .\dist\build\app-plus .\local-android-build\app\src\main\assets\apps\__UNI__2B73CE2\www /MIR如果在 macOS 或 Linux 上操作,可以用:
rm -rf local-android-build/app/src/main/assets/apps/__UNI__2B73CE2/www
mkdir -p local-android-build/app/src/main/assets/apps/__UNI__2B73CE2/www
cp -R dist/build/app-plus/. local-android-build/app/src/main/assets/apps/__UNI__2B73CE2/www/- 打开 Android Studio。
- 选择
Open。 - 打开:
local-android-build
- 等待 Gradle Sync 完成。
- 连接手机后点击顶部运行按钮,可直接安装测试。
- 生成 APK:
Build->Build Bundle(s) / APK(s)->Build APK(s)。
Windows PowerShell:
cd local-android-build
$env:JAVA_HOME="..\tools\jdk-17\jdk-17.0.19+10"
$env:ANDROID_HOME="..\tools\android-sdk"
$env:ANDROID_SDK_ROOT=$env:ANDROID_HOME
.\gradlew.bat assembleReleaseAPK 输出目录:
local-android-build/app/build/outputs/apk/release/app-release.apk
公开仓库不提供正式签名证书。发布正式版前请自行生成 keystore,并修改:
local-android-build/app/build.gradle
开发测试可使用本地测试证书,但不要把正式证书、密码、DCloud AppKey 或第三方平台密钥提交到仓库。
local-android-build/app/build.gradle 会自动检测 local-android-build/app/test.jks。如果本地存在该文件,Release 包会使用它签名;如果不存在,Android Studio 仍可导入工程,Debug 运行使用默认调试签名,Release 需要你自行配置正式证书。
妖火站点登录依赖 sidyaohuo Cookie。当前 App 使用 utils/auth.js 统一处理:
- 从登录响应提取 Cookie
- 同步 App-Plus 系统 Cookie
- 为列表、详情、评论、私信等请求附加 Cookie
- Cookie 失效时跳转登录页
如果登录失败,可以在 App 控制台查看 pages/login/login.vue 的请求结果和服务器返回的 <div class="tip"> 提示。
yaohuo.me 的帖子评论页存在多种 HTML 结构,当前版本做了这些兼容:
- 优先解析
.list-reply - 支持从帖子页、回帖页、隐藏表单和链接中提取
classid - 评论列表请求会清理
mainuserid、reply、touserid、tofloor等过滤参数 - 回复前同步
id、classid、siteid、sid和lpage - 服务器返回失败提示时弹窗显示,不再误报“评论成功”
选择 Use Project's SDK 或手动把 local.properties 改成你本机 Android SDK 路径。
如果你没有配置代理,直接取消。必要时到 Settings -> Appearance & Behavior -> System Settings -> HTTP Proxy 关闭代理。
优先检查:
- DCloud AppKey 是否正确
manifest.json的appid是否和 Android 离线工程dcloud_control.xml一致- App-Plus 资源是否已经同步到
assets/apps/__UNI__2B73CE2/www - Android 包名是否和证书、DCloud 后台配置一致
- Android 16 设备是否使用了支持 16KB page size 的 DCloud SDK 和 Gradle 配置
通常是登录 Cookie、域名或请求解析问题。请确认所有请求指向 https://yaohuo.me,并检查登录后是否成功保存 sidyaohuo。
本项目为学习和交流用途的第三方客户端源码。请遵守目标站点规则和相关法律法规。账号、内容、数据安全由使用者自行负责。
欢迎提交 Issue 或 Pull Request。提交问题时建议附带:
- 出错页面
- 操作步骤
- 控制台日志
- 帖子链接或帖子 ID
- Android 版本和设备型号