自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(376)
  • 收藏
  • 关注

原创 Flutter for OpenHarmony 实战:[开发环境搭建与项目编译指南]

React Native for OpenHarmony 实战:[开发环境搭建与项目编译指南]

2026-01-19 00:48:48 2654

原创 Flutter/OpenHarmony 三方库适配实战:audioplayers 多播放器

本文介绍 audioplayers 在 OpenHarmony 平台的适配实践,基于 6.8.1-ohos-1.0.0 版本,实现多播放器实例并发控制。通过分离实例与全局通道,支持独立事件流、音频焦点管理及后台任务调度。插件采用 WrappedPlayer + MediaPlayerPlayer 架构,结合 AVPlayer 实现音源播放、暂停、跳转、音量调节等功能,并优化资源释放与定时器管理,确保多实例播放不串流、低功耗运行。

2026-10-21 00:40:50 1945 3

原创 Flutter/OpenHarmony 三方库适配实战:just_audio 音频播放

本文介绍 just_audio 在 OpenHarmony 平台的适配实践,基于 0.10.6-ohos-1.0.0 版本,通过 MediaAvPlayer 实现音频播放。采用主通道管理播放器生命周期,每个播放器独立方法与事件通道,确保多实例隔离。关键点包括异步初始化等待、热重启资源释放、通道事件监听管理及 Dart 与原生双向通信设计,完整保留原库 API 语义,实现跨平台音频播放能力。

2026-10-21 00:40:03 1901

原创 Flutter/OpenHarmony 三方库适配实战:video_player 视频播放

本文介绍 video_player 三方库在 OpenHarmony 平台的适配实践,基于 Flutter OH 环境,通过 Pigeon 生成强类型通道实现跨平台通信。适配核心为 OhosVideoPlayer 类,利用 AVPlayer 实现视频播放,结合 Texture 显示画面,并统一处理 Asset、网络与本地文件源。通过文件描述符传递本地文件,保障安全高效。播放控制通过消息通道完成,状态事件通过 EventChannel 流式返回,实现与 Dart 层无缝集成,支持播放、暂停、进度跳转等操作,完

2026-10-21 00:05:27 2222

原创 Flutter/OpenHarmony 三方库适配实战:google_maps_flutter 地图

本文介绍了google_maps_flutter在OpenHarmony平台的适配实践,基于高德地图SDK实现原生地图渲染。通过PlatformView与MethodChannel机制,将Dart地图API映射至OHOS原生地图组件,支持相机控制、标记、折线、事件响应等功能。适配采用分层架构,保留原有API风格,实现多地图实例独立管理。项目使用Flutter OH 3.44.9+及AMap SDK 11.1.104,通过Git仓库引用并配置插件注册,完成环境搭建与工程集成。

2026-10-21 00:04:34 1534

原创 Flutter 3.47 鸿蒙三方库适配实战:permission_handler 权限兼容层

Flutter 3.44.9 适配鸿蒙 permission_handler 13.0.2-ohos.1 版本,通过 MethodChannel 实现权限映射,仅支持有明确对应关系的权限(如相机、麦克风),未映射项统一返回 denied。Dart 层保持原有契约,宿主工程需在 module.json5 声明 OHOS 权限并提供理由。使用 AccessToken 检查权限状态,逐个请求以保证独立性。当前不支持 openAppSettings 和 shouldShowRequestPermissionRati

2026-10-20 21:57:00 1693

原创 Flutter 3.47 鸿蒙三方库适配实战:path_provider 应用目录兼容层

Flutter 3.47 下,path_provider 适配鸿蒙 OHOS 2.1.6-ohos.2 版本,通过 PathProviderPlugin 实现应用目录映射:cacheDir 和 filesDir 分别对应临时与文档目录,library 及外部存储等无等价接口,返回不支持。插件基于 Ability 生命周期管理 Context,确保上下文有效。业务代码无需分平台处理,兼容性良好。验证通过,构建生成 entry-default-unsigned.hap。

2026-10-20 21:54:18 1905

原创 Flutter 3.47 鸿蒙三方库适配实战:shared_preferences 键值存储兼容层

本文介绍 Flutter 3.44.9+ohos 环境下 shared_preferences 插件的鸿蒙(OHOS)适配实践,版本为 2.5.6-ohos.1。通过在插件中新增 OHOS 平台实现,基于 MethodChannel 与系统 preferences 存储对接,兼容 Dart 层 SharedPreferencesAsync、SharedPreferences 和 SharedPreferencesWithCache 三种接口。适配关键点包括:创建 ohos/ 目录结构、注册 pluginCl

2026-10-20 21:51:38 1998

原创 Flutter/OpenHarmony 三方库适配实战:device_info_plus 设备信息

本文介绍了 device_info_plus 在 OpenHarmony 平台的适配实践,目标是保持与 Android/iOS/Web 的统一接口,同时为 OHOS 提供强类型模型 OhosDeviceInfo。通过新增 ohos/ 目录、注册 Dart 与原生插件类、使用 ArkTS 读取系统字段,实现设备信息的跨平台兼容。敏感字段如 serial、udid 被屏蔽,关键字段均提供安全默认值,确保隐私合规与业务可用性。

2026-10-20 21:48:59 2070

原创 Flutter/OpenHarmony 三方库适配:geolocator 定位能力

本文记录 geolocator 在 OpenHarmony 平台的适配实践,重点解决定位服务、权限管理、位置回调与设置页联动等核心问题。通过注册 MethodChannel 与 EventChannel,实现 Dart 层 API 兼容,确保权限检查、定位获取、位置流订阅及服务开关监听完整闭环。强调必须同时处理 Dart 注册、MethodChannel、EventChannel、UIAbilityContext 和系统权限,避免功能伪装成功。适配版本为 14.1.2-ohos.1,基于 Flutter O

2026-10-20 21:34:48 2019

原创 Flutter/OpenHarmony 三方库适配实战:tuya_home_flutter_plugin家庭通道

本文介绍了 tuya_home_sdk_flutter 在 OpenHarmony 平台的适配实践,基于 Flutter OH 环境完成插件开发。保留原 Dart 包名与通道契约,仅在 OHOS 平台实现版本查询接口,其余方法均返回 tuya_home_unsupported,事件通道主动报错以避免误判。通过创建 ohos/ 目录、注册四条通道(1 个 MethodChannel + 3 个 EventChannel),并配置 pubspec.yaml 和 oh-package.json5,成功实现插件发现

2026-10-19 09:35:01 1886 2

原创 Flutter/OpenHarmony 三方库适配实战:openinstall_flutter_plugin 安装归因

本文介绍了 openinstall_flutter_plugin 在 OpenHarmony 平台的适配实践,基于 Flutter OH 3.44.9+ohos-0.0.1-canary1 环境,完成从上游 ohos 分支迁移、HAR 依赖管理、MethodChannel 与 Ability 生命周期绑定,并修复示例签名配置安全问题。通过 OpenInstallFlutterPlugin 实现安装/拉起参数透传,支持渠道归因与效果统计,已通过模拟器验证并推送到 AtomGit 仓库,版本为 2.6.0-oh

2026-10-19 08:52:56 2044

原创 Flutter/OpenHarmony 三方库适配实战:jpush_flutter 推送兼容层

本文介绍了 jpush_flutter 在 OpenHarmony 上的适配实践,基于 Flutter OH 环境完成插件工程构建与注册。通过在 pubspec.yaml 中添加 OHOS 平台支持、创建 HAR 模块并实现最小化 ArkTS 插件,仅暴露 getPlatformVersion 与 getSDKVersion 接口以验证兼容性,其余推送功能统一返回 jpush_unsupported 错误码,确保不误导业务逻辑。适配版本为 3.5.9-ohos.1,已通过模拟器验证,具备可追溯、可维护的兼容

2026-10-19 08:42:05 2047

原创 Flutter/OpenHarmony 三方库适配实战:mobpush_plugin 推送通道与启动

本文介绍了 mobpush_plugin 1.3.2 在 OpenHarmony 平台的适配实践,版本为 1.3.2-ohos-1.0.0-beta.1。由于鸿蒙无原生 MobPush SDK,适配聚焦于插件注册、MethodChannel/EventChannel 通道保留与错误边界处理,修复了因事件监听顺序不一致导致的启动崩溃(SIGILL/SIGSEGV)。所有推送相关功能均返回 mobpush_unsupported,避免业务误判。项目已发布至 AtomGit,支持 OHOS HAR、示例工程及完整

2026-10-19 08:26:11 2037

原创 Flutter 3.47 鸿蒙三方库适配实战:flutter_hms_account适配

本文介绍 Flutter 3.44.9+ohos 环境下 huawei_account 插件的鸿蒙(OHOS)适配实践。通过在 pubspec.yaml 声明 OHOS 平台入口,构建 HmsAccountPlugin ArkTS 入口,并将五条 MethodChannel 统一路由至 AccountMethodCallHandler,实现账号登录、授权管理等核心功能在 OHOS 上的兼容。关键点包括:保持 Dart API 一致性,字段命名严格匹配(如 openId),Android 特有功能(如短信读取

2026-10-19 07:57:32 2014

原创 Flutter/OpenHarmony 三方库适配实战:ni_links 深链兼容层

ni_links 适配 Flutter OpenHarmony 的深链功能,通过实现 UniLinksPlugin 插件,兼容原生 uni_links 的 MethodChannel 和 EventChannel 通道。核心在于将 OHOS UIAbility 的 Want 转换为 Dart 层的 getInitialLink() 与 linkStream,支持冷启动与热启动场景。借助 AbilityPluginBinding 管理生命周期,确保 URI 正确提取并推送至事件流,实现跨平台深链统一处理。

2026-10-18 21:04:50 1113

原创 Flutter/OpenHarmony 三方库适配实战:pda_scanner 兼容层

本文介绍 pda_scanner 插件在 OpenHarmony 平台的适配实践,版本为 1.0.4-ohos.1。通过保留原有 Dart API 接口,仅新增 OHOS 兼容层,实现初始化、设备信息获取、回调管理与桌面跳转功能。采用 defaultTargetPlatform 判定平台,统一通道机制,并基于 ArkTS 实现 FlutterPlugin 与 MethodCallHandler,确保兼容性与可扩展性。关键逻辑如 isPDASupported 返回 false,避免无效等待。设备信息改用 OH

2026-10-18 17:25:06 1048

原创 Flutter/OpenHarmony 三方库适配讲解:status_bar_control 系统栏控制

本文详解 status_bar_control 在 OpenHarmony 3.2.1-ohos.1 平台的适配实践,核心原则为保留原 Dart API 与行为,仅在 OHOS 层补齐方法通道与窗口能力。通过 ArkTS 插件实现状态栏颜色、显隐、样式、导航栏控制及高度获取,并解决插件注册、生命周期管理与上下文持有问题,确保跨平台调用一致性。针对无对应功能的 setNetworkActivityIndicatorVisible 等接口,返回成功但不生效,避免业务逻辑中断。配置 pubspec.yaml 与

2026-10-18 10:34:16 1055

原创 Flutter/OpenHarmony 三方库适配实战:sound_stream 音频流

本文介绍 sound_stream 插件在 OpenHarmony 平台的适配实践,版本为 0.4.2-ohos.1。核心目标是保持 Dart 接口不变,通过 ArkTS 实现 AudioCapturer 与 AudioRenderer 的 PCM 数据流传输,支持麦克风权限动态申请、采集循环异步读取、播放字节写入,并在页面退出时释放资源。适配关键点包括:MethodChannel 兼容、权限延迟请求、HAR 模块构建配置及生命周期管理,确保跨平台音频流稳定可用。

2026-10-18 10:12:00 1015

原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 workmanager

本文基于 Flutter 3.47 与 HarmonyOS API 26,实现 workmanager 0.10.10 的鸿蒙适配。通过 Pigeon 通道对接 OpenHarmony WorkScheduler,保留原有 Dart API,实现任务注册、取消及状态查询,并在真机上完成构建、安装与功能验证,成功打通后台任务能力。项目已开源至 oh-flutter/workmanager,支持 0.10.10-ohos.2 版本。

2026-10-17 20:12:12 1133 4

原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 smart_auth

本文详解 Flutter 3.47 下 smart_auth 3.2.0 鸿蒙三方库适配实战,针对其特殊 Pigeon 通道结构(6个独立 BasicMessageChannel)完成鸿蒙端注册。通过在 ArkTS 中逐条注册通道、严格遵循 ['code', 'msg', null] 错误返回协议,成功实现 getAppSignature 等接口的边界支持(返回 UNSUPPORTED),并通过 API 26 模拟器验证构建、安装、启动及全部功能调用。适配分支已开源,为 Flutter OHOS 生态提供可

2026-10-17 20:08:36 1271

原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 nfc_manager

本文详解 Flutter 3.47 下 nfc_manager 4.2.1 鸿蒙(OpenHarmony)适配实践,通过 Pigeon 接口桥接原生 NFC 能力,实现 NFC 适配器检测、会话注册与标签事件回传。基于 HarmonyOS API 26 真机验证,成功构建并运行 Demo,支持 NFC-A/B/F/V 及 NDEF 协议,完整保留 Dart API 语义,适配仓库已开源,可直接通过 Git TAG 引用。

2026-10-17 20:05:11 1187

原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 installed_apps

本文详解 Flutter 3.47 下 installed_apps 库在鸿蒙(OpenHarmony API 26)的适配实践,保留原有 Dart API 接口,通过 bundleManager 实现应用列表、信息查询与启动功能,并完成真机构建、安装与调用验证。适配版本为 2.2.1-ohos.2,支持包名查询、安装状态检测及应用启动,核心难点在于权限模型与插件注册对齐。项目已开源至 AtomGit,可直接通过 Git 引入使用。

2026-10-17 20:01:43 1217

原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 gal

本文详解Flutter 3.47下gal库在鸿蒙(HarmonyOS API 26)的适配实践,保留原有Dart API,通过MethodChannel对接原生能力,实现相册权限检查、确认式保存及文件写入。基于photoAccessHelper完成沙箱文件到媒体库的写入,验证了hasAccess、putImage等接口在真机上的正确性,适配版本已发布至AtomGit,支持通过Git引用直接集成。

2026-10-17 19:56:34 1363

原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 flutter_compass

本文详解了在 Flutter 3.47 鸿蒙环境下适配 flutter_compass 0.8.1 的全过程:通过对接鸿蒙 @ohos/sensor 的 ORIENTATION 事件流,实现罗盘方向数据的实时推送。保留原有 Dart API,构建 OHOS 插件入口,完成真机验证,最终在 HarmonyOS API 26 设备上成功运行,实现 91.29° 真实方位角读取,验证了事件流、数据精度与插件注册的完整链路。

2026-10-17 19:53:11 1225

原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 flutter_callkit_incoming

Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 flutter_callkit_incoming

2026-10-17 19:45:24 1117

原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 flutter_blue_classic

本文详解了 flutter_blue_classic 0.1.1 在 Flutter 3.47 鸿蒙环境下的适配实践,通过构建 OHOS 插件入口、对齐方法与事件通道(如 blue_classic/methods、adapterState 流),实现经典蓝牙的设备发现、状态监听与连接控制。适配版已在 HarmonyOS API 26 真机验证通过,支持 adapterState 事件推送与核心功能调用,提供可复用的开源仓库与版本引用方案。

2026-10-17 19:41:02 1120

原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 file_saver

本文详解 Flutter 3.47 下 file_saver 0.7.0 鸿蒙(OHOS)适配实战,通过自建 AtomGit 仓库,保留 Dart API 并补全 Platform.isOhos 判断,实现 Pigeon 接口对接。在 HarmonyOS API 26 真机上完成构建、安装与调用验证:点击“保存文本文件”触发系统路径选择,文件成功落盘,路径返回正确。适配版支持 saveFile 与 saveAs,兼容 Flutter OH 插件机制,可通过 Git TAG 0.7.0-ohos.2 引入使用

2026-10-17 19:36:50 1280

原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 awesome_notifications

本文基于 Flutter 3.47 与 HarmonyOS API 26,实现 awesome_notifications 0.12.1 的鸿蒙适配。通过保留原有 Dart API、构建 OHOS 插件入口,对接系统通知能力,完成初始化、权限查询、通知发布等核心功能验证。适配后在真机上成功实现通知创建与回调,确保通道契约完整,为 Flutter 鸿蒙生态提供可靠本地通知支持。项目开源于 oh-flutter/awesome_notifications。

2026-10-17 19:26:19 1057

原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 system_alert_window

本文记录 Flutter 3.47 鸿蒙适配 system_alert_window 2.0.11 的实战过程:统一 Dart 与 ArkTS 通信 Channel 为 in.jvapps.system_alert_window,对齐 Codec,修复权限检查接口。在鸿蒙 API 26 真机上验证,checkPermissions 返回 false,明确不伪造悬浮窗能力,确保业务层正确感知平台限制。

2026-10-16 13:12:49 1329

原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 让 launch_app_store 打开 AppGallery

本文详解Flutter 3.47适配鸿蒙的实战过程:针对launch_app_store插件,通过映射Dart API至鸿蒙应用市场搜索页,实现点击跳转AppGallery。基于HarmonyOS API 26,利用AbilityAware管理上下文,将Android包名作为关键词发起Want跳转,完成真机测试。全程无需修改业务代码,验证通过后可稳定返回调用结果,为鸿蒙生态插件开发提供可靠范例。

2026-10-16 13:09:03 1087

原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 just_waveform

Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 just_waveform

2026-10-16 13:04:19 1037

原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 google_api_availability

本文详解 Flutter 3.47 鸿蒙版适配 google_api_availability 插件的完整流程:基于 5.0.1 版本,通过声明 OHOS 平台、补齐 MethodChannel、实现 ArkTS 插件逻辑,使鸿蒙端返回 notAvailableOnPlatform(value=6),并正确输出平台说明。真机测试验证了 Flutter OH 环境、HAP 构建与服务状态一致性,确保业务层可精准降级处理,实现跨平台兼容性。

2026-10-16 12:57:27 97 6

原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 把 flutter_windowmanager_plus 跑到真机

本文以 flutter_windowmanager_plus 1.1.1 为例,实战演示如何将 Flutter 插件适配至鸿蒙系统。通过补全 pubspec.yaml 中的 ohos 平台声明、实现 ArkTS 插件骨架,并对接鸿蒙 Window.setWindowKeepScreenOn 与 setWindowPrivacyMode 接口,成功在真机上实现屏幕常亮与防截屏功能。验证结果显示,两个能力可独立控制,状态持久化且生效于截图保护,完整覆盖从环境搭建到真机验证的全流程,为 Flutter 鸿蒙插件开

2026-10-16 12:51:15 179

原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 flutter_sms_inbox 的平台限制

Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 flutter_sms_inbox 的平台限制

2026-10-16 12:42:21 1193

原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 flutter_libserialport

本文记录了Flutter 3.47在鸿蒙API 26真机上适配flutter_libserialport0.6.0的全过程。由于该插件依赖dart:ffi加载原生so库,适配关键在于提供OHOS arm64架构的libserialport.so、正确配置NDK构建与权限。实测显示:尽管Flutter页面和HAP构建成功,但因缺少原生库导致FFI加载失败,插件返回真实错误而非伪造串口列表,验证了当前能力边界——平台支持需动态库、ABI、权限三者协同。

2026-10-16 12:25:00 1035

原创 HarmonyOS ArkUI 状态管理全解:从 @State 到 @Observed 的选型与实战

ArkUI状态管理工具选型指南:6种装饰器详解 本文系统介绍了鸿蒙ArkUI框架中的6种状态管理装饰器及其适用场景: @State - 组件内部私有状态,仅当前组件有效 @Prop - 父传子单向数据流,子组件接收副本 @Link - 父子组件双向绑定,需用$传递引用 @Provide/@Consume - 跨层级状态共享,避免逐层传递 @Observed/@ObjectLink - 深度观察对象属性变化 @Watch - 监听状态变化执行回调 文章通过具体代码示例展示了各装饰器的使用方式,并对比了相似装饰

2026-07-21 10:10:04 392 1

原创 HarmonyOS ArkTS 多页面应用的设计一致性与架构思维

本文通过分析一个多工具应用中的五个功能页面(二维码、单位换算、随机决策、颜色提取、倒计时),探讨了设计系统与架构思维。五个页面采用统一的视觉语言:深色渐变背景(#1A1A2E到#0F3460)、20px边距、圆角卡片(16px)、固定导航栏结构(返回按钮+标题),同时每个工具拥有独特的主色调(如二维码#4F6EF7、倒计时#FF2D55)。文章详细拆解了字号系统(标题18px/正文14-16px)、色彩应用、阴影参数等设计要素,并指出了当前存在的不一致性(如背景色、emoji使用等)。最后提出可提取统一的设

2026-07-21 09:43:17 331

原创 HarmonyOS ArkTS 倒计时器的时间计算与列表渲染

本文介绍了倒计时器的设计与实现,重点解析了时间差计算、进度环百分比和事件列表的动态管理。通过两个核心类CDEvent(存储事件信息)和RemainInfo(计算剩余时间)实现数据与逻辑解耦。时间差计算采用毫秒时间戳运算,逐级拆解为天/时/分/秒,并设计了30天最大跨度的进度环算法。文章还讨论了性能优化策略(如避免实时刷新),以及事件添加功能(包含日期选择器和颜色选择),最后通过条件渲染实现已完成事件的特殊展示。

2026-07-21 09:19:28 381

原创 HarmonyOS ArkTS 随机决策器的动画编排与 LCG 随机数

这篇文章介绍了一个不使用 Math.random() 的随机决策器实现,采用线性同余生成器(LCG)算法自主生成随机数。主要内容包括: 状态管理:使用枚举类型管理三个选项卡(硬币、骰子、数字),通过条件渲染实现界面切换。 随机数生成:自主实现LCG算法,通过时间戳作为种子,提供可控且均匀的随机数分布,支持结果复现。 动画效果: 硬币翻转采用10阶段链式动画,模拟物理运动规律。 骰子摇晃通过6阶段随机位移动画,逐渐减速至停止。 使用定时器和递增长时间控制动画节奏,实现流畅的视觉效果。 该方案通过自定义算法和精

2026-07-21 09:11:19 357

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除