1234下一页
返回列表 发新帖

【原创开发】MT论坛 apk

  [复制链接]

2

主题

233

回帖

752

积分

初中生

Rank: 3Rank: 3

金币
957
好评
2
信誉
100
发表于 2026-1-9 16:01:23 | 显示全部楼层 | 阅读模式  来自 山东
本帖最后由 SuperMaker 于 2026-1-9 16:51 编辑

个人开发的论坛app,分享给大家,根据评论把源码也放上,就不设置帖子权限了,网盘衔接也是可以直接下,希望下载给个回帖。关于自动化功能我就不加了,开发过程如下:

1. 项目概述
本项目旨在将 BinMT 论坛(https://bbs.binmt.cc/) 封装为一款体验流畅的 Android 原生应用 (APK)。不仅仅是简单的网页加载,更通过原生代码与 Web 前端的深度交互,解决了文件上传下载、沉浸式状态栏同步以及符合用户直觉的导航逻辑等痛点。

2. 核心技术架构

2.1 基础容器 (Base Container)
应用采用 单 Activity (Single Activity)架构,核心载体为 `WebView`。
- 语言: Kotlin
- 最低兼容版本: Android API 24 (7.0) +
- 权限管理: 动态请求存储权限 (针对 Android 9及以下),适配 Scoped Storage (Android 10+)。

2.2 关键功能实现原理

A. 智能导航系统 (Smart Navigation)
这是提升用户体验的关键一环。原本的 WebView 在按下返回键时会直接关闭 Activity,为了模拟原生 App 体验,我们实现了双层导航逻辑
1.  拦截系统返回事件: 使用 `OnBackPressedDispatcher` API(替代过时的 `onBackPressed`)。
2.  层级判断:
    -   第一层 (Web 历史): 检查 `webView.canGoBack()`。如果有网页浏览历史,则执行网页回退 (`webView.goBack()`)。
    -   第二层 (App 出口): 如果处于 WebView 首页,则进入“防误触退出”流程。
        -   记录并对比上次按键时间戳。
        -   间隔 > 2秒:Toast 提示 "再按一次退出应用"。
        -   间隔 < 2秒:执行 `finish()` 关闭应用。

B. 沉浸式 UI 同步 (Dynamic UI Sync)
为了消除“网页感”,App 能够根据网页内容动态改变 Android 系统状态栏颜色。
-   原理: `WebView` -> `JavaScript 注入` -> `Android Interface`。
-   流程:
    1.  `onPageFinished` 时注入 JS 脚本。
    2.  JS 脚本定时提取网页 Head 区域 (`.comiis_head`) 的背景色。
    3.  通过 `@JavascriptInterface` 将颜色值回传给 Android 原生层。
    4.  原生层解析颜色并在 UI 线程更新 `window.statusBarColor`,同时根据亮度自动调整状态栏图标(深色/浅色)。

C. 文件系统深度集成
-   **文件上传**:
    -   重写 `WebChromeClient.onShowFileChooser`。
    -   创建原生 `Intent` 调起系统文件选择器。
    -   使用 `ActivityResultLauncher` 接收结果并通过 `ValueCallback` 传回 WebView。
-   文件下载:
    -   实现 `DownloadListener`。
    -   桥接系统 `DownloadManager` 服务,将下载任务加入系统下载队列,并在通知栏显示进度。

D. 链接处理策略
-   站内链接: 拦截并强制在当前 WebView 打开,防止跳出到外部浏览器。
-   站外/特殊链接**: 尝试通过 `Intent` 调起系统默认浏览器或其他对应 App (如支付宝、百度网盘等 Schemes)。

3. 代码结构亮点

清晰的职能分离
代码没有全部堆砌在 `onCreate` 中,而是拆分为独立的模块化方法:
-   `setupWebView()`: 集中处理 WebSettings、Cookie、UserAgent 配置。
-   `setupBackPress()`: 独立的导航逻辑封装。
-   `WebAppInterface`: 独立的内部类处理 JS 交互。
-   `handleDownload()`: 独立的下载处理逻辑。

兼容性处理
-   文件权限: 针对 Android 10 (Q) 以前的版本动态申请 `WRITE_EXTERNAL_STORAGE`。
-   安全配置: 启用 `MixedContentMode` 允许 HTTPS 页面加载必要的 HTTP 资源(如图片)。


该项目成功将一个 Web 论坛转化为功能完备的 Android 客户端工具。


程序链接:
https://www.123865.com/s/N0iA-A3Lqh?pwd=SPGS# 提取码:SPGS
源码链接https://www.123865.com/s/N0iA-93Lqh?pwd=9JMs# 提取码:9JMs




补充内容 (2026-1-11 10:40):
更新了v1.1版本,改不了原贴,只能另开贴,看个人空间。
已有2人评分好评 金币 理由
我是位面之子 + 1 + 1 赞一个!
darou0 + 1 + 1

查看全部评分 总评分:好评 +2  金币 +2 

回复

使用道具 举报

11

主题

1083

回帖

4085

积分

大学生

Rank: 5Rank: 5

金币
1500
好评
2
信誉
101

MT论坛帅哥

发表于 2026-1-9 16:07:50 来自手机  | 显示全部楼层  来自 湖南
谢谢分享 第一第一
回复

使用道具 举报

18

主题

239

回帖

1374

积分

高中生

Rank: 4

金币
564
好评
50
信誉
100

考神MT论坛新人

QQ
发表于 2026-1-9 16:18:17 | 显示全部楼层  来自 浙江
膜拜大佬
回复

使用道具 举报

341

主题

2337

回帖

7960

积分

硕士生

Rank: 6Rank: 6

金币
1048
好评
9
信誉
101
发表于 2026-1-9 16:18:44 来自手机  | 显示全部楼层  来自 浙江
膜拜
回复

使用道具 举报

65

主题

343

回帖

1571

积分

高中生

Rank: 4

金币
663
好评
6
信誉
84

考神MT论坛最佳新人MT论坛帅哥

发表于 2026-1-9 16:24:47 来自手机  | 显示全部楼层  来自 上海
你应该开源。MT管理器作者Bin还是康哥之前就有发文说不建议使用第三方APP访问论坛等容易有风险。
回复

使用道具 举报

54

主题

3590

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
795
好评
190
信誉
180

MT论坛新人MT论坛最佳新人MT论坛帅哥考神MT论坛活跃会员挂机大佬

发表于 2026-1-9 16:31:22 来自手机  | 显示全部楼层  来自 陕西
本帖最后由 青春向上 于 2026-1-9 16:53 编辑

论坛帖子很多外链,大多时候先预览,在预览时可以选择跳转到浏览器。

(我就单独想看看官网,结果蹦浏览器去了
app目前相当于全屏网页,没有特色功能,大佬你可以了解其他大佬制作的app:
https://bbs.binmt.cc/thread-115098-1-1.html
至少把原生导航栏(类似微信小程序那样)、多页面管理(类似via标签切换)、各类脚本(例如自动展开下一页、[移动端]MT论坛)都加上,不然和浏览器没有区别。楼上建议开源,因为使用第三方app容易被盗号。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
已有1人评分金币 理由
挽梦遗酒 + 1 建议这么多,我命你做一个惊天动地的.

查看全部评分 总评分:金币 +1 

回复

使用道具 举报

38

主题

3183

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
654
好评
3
信誉
100
发表于 2026-1-9 16:34:47 来自手机  | 显示全部楼层  来自 江苏
试了下不错,感谢分享
回复

使用道具 举报

20

主题

2499

回帖

8220

积分

硕士生

Rank: 6Rank: 6

金币
1289
好评
2
信誉
100

MT论坛最佳新人MT论坛新人

发表于 2026-1-9 16:37:16 来自手机  | 显示全部楼层  来自 山东
网页转应用也可以吧
回复

使用道具 举报

0

主题

118

回帖

814

积分

高中生

Rank: 4

金币
367
好评
0
信誉
100
发表于 2026-1-9 16:43:41 来自手机  | 显示全部楼层  来自 江苏
体验了下,可以的
回复

使用道具 举报

2

主题

1398

回帖

5237

积分

硕士生

Rank: 6Rank: 6

金币
4397
好评
0
信誉
100
发表于 2026-1-9 16:45:00 来自手机  | 显示全部楼层  来自 四川
感谢分享
回复

使用道具 举报

688

主题

1万

回帖

2万

积分

博士后

Rank: 8Rank: 8

金币
3412
好评
164
信誉
119

考神MT论坛新人MT论坛活跃会员MT论坛帅哥MT论坛灌水老大MT论坛侠客MT论坛最佳新人

发表于 2026-1-9 16:56:42 来自手机  | 显示全部楼层  来自 广东
感谢分享
回复

使用道具 举报

2

主题

4507

回帖

1万

积分

禁止访问

iKUN

金币
1214
好评
16
信誉
111
发表于 2026-1-9 17:19:55 来自手机  | 显示全部楼层  来自 广西
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

2

主题

233

回帖

752

积分

初中生

Rank: 3Rank: 3

金币
957
好评
2
信誉
100
发表于 2026-1-9 17:23:48 | 显示全部楼层  来自 山东
青春向上 发表于 2026-1-9 16:31
论坛帖子很多外链,大多时候先预览,在预览时可以选择跳转到浏览器。

(我就单独想看看官网,结果蹦浏览器 ...

是的,本质是基于网页的app,献丑啦。我本想个人使用,要求顺手、简洁。其它功能,谢谢你的建议,等我后面看看,主要是忙工作
回复

使用道具 举报

46

主题

2704

回帖

1万

积分

博士生

听冬宝宝

Rank: 7Rank: 7Rank: 7

金币
4089
好评
91
信誉
151

MT论坛帅哥考神MT论坛新人MT论坛活跃会员MT论坛最佳新人

QQ
发表于 2026-1-9 17:26:44 来自手机  | 显示全部楼层  来自 贵州
大佬666
回复

使用道具 举报

39

主题

5419

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
4485
好评
18
信誉
108
发表于 2026-1-9 17:28:55 来自手机  | 显示全部楼层  来自 北京
每次打开都得重新登录,不能保存登录状态
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表