# flutter_readhub **Repository Path**: AriesHoo/flutter_readhub ## Basic Information - **Project Name**: flutter_readhub - **Description**: Flutter版本Readhub非官方客户端 - **Primary Language**: Dart - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2020-11-17 - **Last Updated**: 2025-09-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # flutter_readhub [![](https://img.shields.io/badge/download-apk-blue.svg)](https://gitee.com/AriesHoo/flutter_readhub/raw/master/sample/sample.apk) [![](https://img.shields.io/badge/download-MacOS.app-green.svg)](https://gitee.com/AriesHoo/flutter_readhub/raw/master/sample/Freadhub-聚合资讯.app.zip) [![GitHub license](https://img.shields.io/github/license/AriesHoo/flutter_readhub.svg)](http://www.apache.org/licenses/LICENSE-2.0.html) [![](https://img.shields.io/badge/Gitee-Gitee仓库-green.svg)](https://gitee.com/AriesHoo/flutter_readhub) ~~[相关文章一:用Flutter给Readhub写一个App](https://www.jianshu.com/p/5e1db7423dac)~~ [相关文章二:Flutter版本Readhub开源](https://www.jianshu.com/p/f4161c721ff7) [相关文章三:Flutter iOS真机调试及打包过程记录](https://www.jianshu.com/p/58a6e272a038) [相关文章四:Flutter iOS打包过程及构建上线审核通过流程总结](https://www.jianshu.com/p/0bba10136bf5) [相关文章五:Freadhub终于升级Flutter2.0了](https://juejin.cn/post/6963433655838441485) [相关文章六:Freadhub Mac版它来了](https://juejin.cn/post/6971301773604552735) [相关文章七:Freadhub 适配原生鸿蒙(Harmony OS NEXT)](https://juejin.cn/spost/7483477450535239707) 该项目为Flutter实战项目,为[Readhub](https://readhub.me/)非官方客户端。 数据来源于`Readhub`官方API接口。**版权及最终解释权归Readhub官方所有,如有侵权请邮箱联系删除!** 仅供学习使用,禁止商用 ## 前言 > `Freadhub`是由`AriesHoo`开发维护的一个`Flutter`开源项目--`readhub`的非官方产品。 之前`Freadhub` 手机端已有`Androd`、`iOS`版本,随着 `原生鸿蒙(Harmony OS NEXT)` 的发布,加上社区 SDK 鸿蒙化的推进。笔者感觉是时候适配一下了. > Gitee开源: 先来个整体效果展示 | 亮色模式| 深色模式| | --- | --- | | ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/ee06583d07a047018079c34916c561a7~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=ts%2FlQav9bbXDWD3WA92bS35MU%2BQ%3D) | ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/fc904244514442eeaee4690c5679966a~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=qVkmKxt1al05ULwuEf31f4ww5qE%3D)| | 今日古诗 | 分享面板 | | ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/a5fa3593ba5743d9b53e5ecd2b9ea153~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=6sGYXZUc2TBq7m%2B8rhugQU4voSA%3D) | ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/b91224d2195249f188f28cd34e49f97b~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=bPRXxtwu3g7aTcN%2BQ%2FZj6Effnls%3D)| | 图片分享| 文字分享| | ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/83883d97f3ca49258e30cc6f1335ae98~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=gRJupoXl%2FrkT9aZOwut7sy4XzWs%3D)| ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/c3979e15b9544497acaf28b0bc5d4ddb~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=dtF%2FfIh%2BLjwDqCDa9coia7Tuz0k%3D)| | 内置浏览| 系统浏览| | ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/a40a97622cd044acb3dd8c8cc36fa59b~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=Qfms%2BXSn2jfBF%2FD7SoGRwDuq8%2Bo%3D) | ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/8eac45fd82ce4fc4bf25fbc6386bc519~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=5%2BiYaHJ7dxiivdqku5wFoHWi2IU%3D)| | 更多内容| 主题选择| | ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/a3a11a1f40b74484901bfaf6db62e7ec~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=upxteQpb4EcKHr14uXxudC%2BElsY%3D)| ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/532133641f5c4602950d0c9f93d6d55d~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=N%2BDnNh8VQX0z50p9Wwy5cYa6SoI%3D)| ## 开始适配 ### 前置条件 首先因为 `Harmony版Flutter SDK` 只支持`Mac arm`架构,故需要准备一个 `Mac M系列` 的 `Mac` 电脑. ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/da65c5cfd74e46baad077541a615cbd0~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=vl%2BPk50CDWM%2BlhWWPJwGq6%2BXQtg%3D) [社区文档](https://gitee.com/openharmony-sig/flutter_samples/blob/master/ohos/docs/03_environment/%E9%B8%BF%E8%92%99%E7%89%88Flutter%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA%E6%8C%87%E5%AF%BC.md#52-windows%E6%88%96mac-x86%E6%9E%B6%E6%9E%84%E6%97%A0%E6%B3%95%E8%BF%90%E8%A1%8C%E6%A8%A1%E6%8B%9F%E5%99%A8) 很可惜笔者的电脑是不支持的...😂 ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/e357c4547a694b62837fa69693bcbd05~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=Ilo5bJ8Pyh7lJqel%2Bg2e%2FQi7kQ4%3D) > 话说公司应该给升个级了. 那么就走另一条路了,`买个支持原生鸿蒙的手机`. | | | | | -- | -- | -- | | ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/dd83155118cd47a1a79e9a2fb538bc41~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=hh1Pjs0YZuCzzeGVR9C8afowbQg%3D) | ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/31eb3e2fb7674f1ea211521888a29992~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=BhTuQLkUfYe8oV5CnPzJkLarojI%3D) | ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/09bac710c60640bdb1d2e4af3b80095e~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=qobvNeSqZ1nzRr51sRr9yO6gF40%3D) | 根据自己的情况搞一个 [Harmony NEXT 支持设备查询](https://consumer.huawei.com/cn/support/harmonyos/models-next/) ### Flutter SDK下载 目前社区版 `鸿蒙Flutter SDK` 有俩版本 [3.7.12](https://gitee.com/openharmony-sig/flutter_flutter) 和 [3.22.0](https://gitee.com/harmonycommando_flutter/flutter), `Freadhub`选择`3.7.12`, 可以直接下载给自己的Flutter项目加载使用 > git clone hm3.7.12 也可使用`fvm` 进行多版本SDK管理 通过 `fvm use hm3.7.12` 切换当前系统使用SDK版本 ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/518c2b61cc134a74b32a5142c6e41b7d~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=Mzpj8XAFWLpNIH5wnFpMjrCgDBI%3D) ### 增加ohos支持 `flutter create --platforms=ohos .` 执行该命令后会在原项目增加 `ohos` 文件夹 ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/77da7a8d9435479ca42f57276aa762ed~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=n%2BCgJTmkE90UoGqTcc54EDBbJYM%3D) ### ohos项目配置 #### 下载并配置 DevEco Studio 在华为官网下载一个 [DevEco Studio](https://developer.huawei.com/consumer/cn/download/) ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/a2eb81acb1a44e46ac4c858cf1d55881~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=bFLbZMM6clQZ1ZRZujlOghQTHQk%3D) 该步骤非本文重点,具体 [安装配置流程参考文章](https://juejin.cn/post/7427455855971008548) #### DevEco Studio 配置 Freadhub ohos项目 第一步:导入 `flutter_readhub` 项目的 `ohos` 文件夹,该文件夹是一个完整的 `Harmony NEXT`项目 ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/ba2bfc0863c44fc392887a9c41a1da26~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=GykqyU6BabXD5VGd8mWAUbMKN58%3D) 如图可见,该项目是完全可直接运行的,类似用`Android Studio`直接打开`android`文件夹,也是可以直接运行起来的一样 ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/b7368137646a419da5f413a5b7183965~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=XFg6xMH8AexJXrSdknVrMvyv8rc%3D) 第二步:配置项目自动签名 > 因为项目是需要直接运行到真机的,故需要自动签名 ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/7ad6144a43114614929703c90340ccdc~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=LGKXBcaKd8FlHYbDHYALzaxwdEE%3D) 需要登录自己的华为开发者账号 ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/aa60b540e7ca44b9a48d648f98ca0639~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=U1BV57vheOYzufg%2Fwb8PwjfvVeY%3D) 打开设备开发者模式并连接电脑 ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/756f2f7ad1ce4e7ea92cb78adf3cc38e~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=jvXhGs5ioz24WtkuQ6i2q8Xgz%2FM%3D) 如果电脑未连接设备会是这个样子的 ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/e5b4ed620fad48ab9b5552ac76bf87a1~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=eR7mhyLIy0USV54Tuemc%2FXZhjlE%3D) [华为官方文档](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V14/ide-signing-V14) [Flutter社区文档](https://gitee.com/openharmony-sig/flutter_samples/blob/master/ohos/docs/03_environment/%E9%B8%BF%E8%92%99%E7%89%88Flutter%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA%E6%8C%87%E5%AF%BC.md#3openharmony%E7%9C%9F%E6%9C%BA%E8%BF%90%E8%A1%8Cflutter%E9%A1%B9%E7%9B%AE) 然后在未配置自动签名项目运行会出现一下问题[华为官方解疑](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V14/ide-hvigor-faqs-V14#section165158289282) ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/cdd65ca47eb6414dba155db28aee7d15~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=BvliLrG3ZIcVNNLKGepG5cFp3C8%3D) 第三步:配置应用`bundleName` > 应用包名,对应 Android 项目的`packageName`或 `applicationId` 及 iOS 项目的 `bundleId` ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/18908be1f51848b7a160d8550f471791~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=0ypthqMn8MgjXVX6JtF6Vyt1ODE%3D) > 因为历史原因建议与`Android`项目作区分 第四步:配置应用的图标及应用名称 配置`app.json5` ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/164adb79f55c4c578499b1ccae86a9ed~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=sNbF6nNGJ9CWecCtlsCGLG%2BBnEQ%3D) 移除 `module.json5` 中默认添加的 `icon` 和`label` ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/e8404d64cfa84e66bd0eab7d71121d4c~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=oQwjdnKgT7gBsYbgFc2U3KgRHYc%3D) ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/d2e5d09aecb54b8eab2010bfe9f4c337~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=SXxkP1qyHyvD6wMxMVkrQ%2BmiKSU%3D) 至于原因参考华为官网介绍 > v5前 [华为官方文档](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/application-component-configuration-stage-0000001478340869-V2) ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/b0c76c4915de44cd8210dd5549994874~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=mHIhQPNk%2FPUWCADu2IiCZS0dn9o%3D) > v5后 [华为官方文档](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/application-component-configuration-stage-V5) ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/943c23a3ed7840c3a9f3603dd4fb03ab~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=IrWyChMfO%2BUJ8kxmHmLefvypDzM%3D) 第五步:配置应用的闪屏页 如下图所示配置 `module.json5` 中 `startWindowIcon` ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/a867fb235fca4c33ab7985be3e090790~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=cOGJ9PGvUawoZhj1Spa3Sf2hsSs%3D) 增加闪屏背景`dark`模式适配,`copy`一份 `base` 文件夹改名为`dark` 并且仅保留 `element`文件夹及下级`color.json`文件 ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/71554b11a37f487da38b19d70d1bf64d~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=yuaR9auc10IWE4pvylwYcI%2BSTMY%3D) 修改 `dark` 文件夹下 `color.json` 文件里的 `start_window_background` 的 `value` 为一个相对较暗的值 ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/bf394aa7dba943e0b601ceb7ae9154cf~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=ybc96fZwgAiFOQutQpXkDHkHZ08%3D) 至此 `DevEco Studio` 配置 `Freadhub` `ohos`项目完成. ### `flutter_readhub`项目适配 #### 插件适配 `ohos` 端 > 首先 通过 `Android Studio` 打开 `flutter_readhub` 项目,其中 `Flutter Plugins` 需要自行判断是否需要在 `ohos` 端进行适配. ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/f267aa563bb64a748c761db0f0e7e9a7~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=w65ys7%2BO2wxvmGf7GLf7Q69XgFs%3D) 可以在[Flutter社区已兼容openharmony插件 ](https://gitee.com/openharmony-sig/flutter_packages#openharmony%E5%B9%B3%E5%8F%B0%E5%B7%B2%E5%85%BC%E5%AE%B9%E5%BA%93) 进行查阅 本项目需要兼容的插件如下 # 设备信息 device_info_plus: git: url: https://gitee.com/openharmony-sig/flutter_plus_plugins.git path: packages/device_info_plus/device_info_plus # 应用包信息 package_info_plus: git: url: https://gitee.com/openharmony-sig/flutter_plus_plugins.git path: packages/package_info_plus/package_info_plus # WebView-应用内查看资讯详情 webview_flutter: git: url: https://gitee.com/openharmony-sig/flutter_packages.git path: packages/webview_flutter/webview_flutter ref: master #跳转系统浏览器/打电话等 url_launcher: git: url: https://gitee.com/openharmony-sig/flutter_packages.git path: packages/url_launcher/url_launcher #动态权限申请-8.0.0版本需在Profile申请需要启用的权限 permission_handler: git: url: https://gitee.com/openharmony-sig/flutter_permission_handler.git path: permission_handler #分享文字及文件-注意保存文件位置 share: git: url: https://gitee.com/AriesHoo/plugins.git path: packages/share ref: master # plus版本 share_plus: git: url: https://gitee.com/openharmony-sig/flutter_plus_plugins.git path: packages/share_plus/share_plus 其中项目直接引入共计7个需要适配`ohos`的插件. > 又因为 `flustars` 插件内部引入了 `path_provider` 和 `shared_preferences` 插件故需要通过 `dependency_overrides` 方式进行覆盖. ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/0fc3312defd64189bf2d0d4a962d2af7~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=ai3CIXe0wp6hkaDccfDJu%2BP531o%3D) > 最后通过命令 `flutter pub get` 一下,即可查看到对应 `ohos` 实现的 `Flutter Plugins` ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/b7c5e4cebfdc4a12b270c3acf8589013~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=Qq1%2FSXaoQXqRqFpNgdl6q7WCHLQ%3D) > 至此该项目是可以直接运行到 `Harmony NEXT` 设备上的.最后还需针对`ohos`的小优化--涉及修改 `flutter_readhub` 代码层面的. ### 针对 `ohos` 的 `flutter_readhub` 代码层面优化 #### 分享功能优化 因为之前在 `Android` 平台增加固定分享某些社交平台如`QQ`、`微信`、`企业微信`、`钉钉`等,故之前魔改了 `Flutter` 官方的`share` 插件,但是支持 `ohos` 的分享插件是 `share_plus` 故需要做判断. 首先增加是否是 `ohos` 的判断方法 ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/b6742488e16d4020aaa591219884f4c8~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=aQCRBeFVE489zIEAt9B6Sf5neeg%3D) 其次在`share_util`中的`shareText`及 `shareFiles` 方法修改 ![shareText](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/02611e1d43614e68a2a25e3888032daf~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=RqcVOXg%2FRMwhZEtFrcV05a2stNs%3D) ![shareFiles](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/6e660e2417cb4498985ccda5fd4c7c9c~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=HYhsqcMi3oMJqLvfngh6NdFXR6E%3D) 然后分享图片截取图片到手机功能,经测试发现在`ohos`上不需要申请权限即可保存到手机然后进行图片分享.但是没有找到图片在图库的具体位置😓.(不知道是否是存在应用独有的存储空间?),故在权限帮助类增加如下判断 ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/f8350fca652b459196cd84332cd04f22~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=ShnRhmHfNGmhzTEzjYG%2BzEOAqDY%3D) #### 下拉刷新及底部加载更多 因之前做 `Android` 是 `MaterialClassicHeader` 刷新头,其他都是 `ClassicHeader`,这次升级后,`Androud`的刷新头是 `MaterialClassicHeader` ,`ohos` 刷新头脚都是 `ArkUI` 自带的 `LoadingProgress`效果. 剩余平台的头脚都是 `CupertinoActivityIndicator` 这里通过加载 `GIF`图片效果增加 `ohos` 的效果,首先从华为官网获取到对应gif资源并放入`flutter_readhub`项目 ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/778d565299b64664ad68036a723dfd48~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=M3dRd3Uk1eEPVa70GfQFRCLBZfU%3D) 在`flutter_readhub`项目中引入插件`flutter_svg` ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/1f6981e309ca403fbb6c0a84a40840c0~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=lbfvt8dCXI4qENQM6NwWDigIvuM%3D) 然后组装一个组件加载即可 ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/bb6654b5b188459cb1ce9809ff73eb92~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=b%2FV3E5%2F0Bmrndrl1Lvp%2F%2BCLrLTY%3D) 最后刷新头脚相关平台判断即可 ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/11b4da0987544c039a8a845346374783~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=K7a34ScyZ186MV3inBtubahWYlA%3D) ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/756228d13feb4290b78eb295e99bdcda~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=rOgNQzNtTRSuGnh2ECAjBBHeYXU%3D) 最终平台效果一览 | Android | iOS | OHOS | | --| -- | -- | | ![Android.gif](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/88c83d11d29b4ab9a39fc7f0551b9c26~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=7J93qjga1%2F7ptuLu2pn%2FHIAAS3A%3D) | ![iOS头.gif](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/75988b9fae254d179f6715458d1d8f29~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=%2Bfzm76REPc0S5ICQpSmJ1Z3bZl4%3D) | ![ohos.gif](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/18a44d3d6ced41d0924eb7bb5b775c8e~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=CMypofPzaI4JMJBgQjtOFuHmKyM%3D) | #### 整体圆角弧度增大 最近俩月使用原生鸿蒙手机,感觉系统的圆角做得比较大,感觉挺不错,故将整个`flutter_readhub`项目涉及到圆角地方进行了增大. | 列表旧版 | 列表新版 | | --| -- | | ![155313318232c62759c0f8812a78c6a1\_720.jpg](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/88dad1400a3744c59c2ff453dafb6d24~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=gAc7kz0n2O%2FkBVUFU7h7maSiVxU%3D) | ![92c441af62a05a65b977aaca2363a248\_720.jpg](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/fd125771a37541a0a06437d497e33957~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=r8d%2BX%2FjOD7fBdKGu9Zifl6OL4PY%3D)| | 分享弹框旧版 | 分享弹框新版 | | ![14121c224f521ec07141c95d2a057fc4\_720.jpg](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/b43b6f16d5584b1b90672e301f62ce6d~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=O6CLC9Me0Tyq9wvi48uCp%2B6Rf8E%3D) | ![312b5799c9f4e76c02bede56c3b79a4b\_720.jpg](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/0dc87f6ea58144d6bf3c619c2d89b89a~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=52hSYq62hhfi4zKMjBwFbKGEUjU%3D) | | 更多弹框旧版 | 更多弹框新版 | | ![8b03ef8614ea4a3d326e7db605a8e143.jpg](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/df7079fc6ea74cdfa3fab4b18cf79240~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=jZDc2o1gnrg48UXom%2F2dPcQhgvc%3D) | ![da2d0b105d5fbbb36871124dfcc388f3\_720.jpg](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/a87df654df944617a4f79e8ed1d2b747~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=tCkknV%2BQO2UujST1x1Vu1fe6bEs%3D)| #### 其他小优化 1. 列表卡片增加已读灰度标识 2. 顶部诗歌部分增加点击切换功能 3. 开源移除GitHub地址(主要是太久没有上去加上手机格式化问题二次校验不通过登不上去了😂) 4. 分享弹框icon增加为5列显得更加合适不过大 5. 部分图标变更为`outlined`模式的 6. 列表回到顶部功能icon变更并且移除文字显示 7. 接口数据源变更 ### 手机上运行项目 在完成 `ohos` 端插件适配后即可在手机上运行查看效果 > 首先 打开`开发者选项`并`开启USB调试`, 注意`开发者选项`需要重启手机.连续点击三次`关于本机`中`软件版本`后根据提示操作并重启手机.然后`设置>系统>开发者选项` 打开`USB调试`即可. | 打开开发者选项 | 打开USB调试 | | -- | -- | | ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/f0a450fe38254f10a4ab11c23411a17f~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=1l26YQkHX4wO1%2F3gwkivd4W70eI%3D) | ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/f5e2bbf7b2804b909ccc43f8fd3a43e9~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=RldItUKfrQ7ycHIS0TZwI1m5fuo%3D) | > 其次数据线连接电脑与手机选择手机点击运行即可 ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/508a3d1abb344f59868e02d2fb649287~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=znzcJoM4IR3jph1QC1Clh%2BL6F0M%3D) 成功运行,控制台出现`flutter_readhub`日志 ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/cbbf948c40b54be1b22fab024c814a4e~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=QdHFbV2I22euwITT%2FmmJnuJJOhI%3D) 其他操作如 `command+s` 会 `hot reload` 和运行其它端一样一样的. 如果要平常使用则通过`flutter run --release` 这样闪屏页和主程序之间不会有近1s的白屏 | debug模式 | release模式 | | -- | -- | | ![debug.gif](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/d4309fe5ab534b20a4c7c5e83168db53~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=gJWl7xu8tp47U3%2FH33UC0KeAtg8%3D) | ![release.gif](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/7a224553d72d4d0f80a89e6ad3af27f2~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=nLCX8oZNdBjqkAQ5AW%2B1FthPcaM%3D) | ## 其它杂谈 1、部分网页不知道是自身适配原因还是`ohos`系统本身`webview`问题.未加载成`手机模式`而是`PC模式`,同一网页在`Android` 环境下是正常的`手机模式` | HarmonyNEXT | Android | | -- | -- | | ![ohos.gif](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/77c9db4d8d274a8d8627deec4d598352~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=AMwYY5A%2FoIXhXu0jY0pt6OU5Dl0%3D) | ![Android.gif](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/9df203d74f7f4c6f93805cd0e8c7c12e~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=2aIxwPBp3RhJkrnjbOneV%2F0eYwY%3D) | 2、因 `Harmony NEXT` 软件生态还在搭建部分应用未迁移的可以通过`卓易通`下载`Android` 版进行过度,故可以在 `Harmony NEXT`手机上同时安装 `ohos版` 和 `Android版` ![image.png](https://p0-xtjj-private.juejin.cn/tos-cn-i-73owjymdk6/ea8446658a7145c7bc4a489b11b7b5dc~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgQXJpZXNIb28=:q75.awebp?policy=eyJ2bSI6MywidWlkIjoiOTIzMjQ1NDk1OTkwMTA5In0%3D&rk3s=f64ab15b&x-orig-authkey=f32326d3454f2ac7e96d3d06cdbb035152127018&x-orig-expires=1743056149&x-orig-sign=EpmCH405PEb8mUA8izph8EwvgoY%3D) > 如图所示左侧列表卡片占据到底部小横条的是 `ohos版` 右侧 最底部有白色预留小横条的是 `Android版` ## 总结 1. 社区 `Flutter SDK` 提供了开发`Harmony NEXT` 的一种可能 2. 支持的版本只有俩 `3.7.12` 及 `3.22.0` 目前 Flutter 官方最新版 `3.29.2` 3. 三方SDK`ohos`支持度还不够 4. UI 部分要是有一套`ohos`的就更好了 5. 到2025年虽然网上有[`Flutter团队要解散了`](https://juejin.cn/post/7362901975421337651?searchId=202503201036274BA51447DB61E1FD796F),[`Flutter社区分叉Flock`](https://juejin.cn/post/7431032490284236839?searchId=20250320103847FDC1DE0D9B1B76AC523D)等传闻,但是笔者私以为 Flutter仍是跨平台的最优解,没有之一 > 该项目为笔者学习`Flutter`练手开发的,年前心血来潮适配了一下`ohos` ,权当抛砖引玉了,万望各位不吝赐教 * `@AriesHoo 2025.03.20 未允禁转` * `掘金主页` : [AriesHoo](https://juejin.cn/user/923245495990109) * `Gitee` : [AriesHoo](https://gitee.com/AriesHoo) * `Email` :  ## License ``` Copyright 2019-2025 Aries Hoo Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ```