logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Flutter x_app_utils 应用信息工具鸿蒙适配,ArkTS 聚合设备、包信息、OAID 与密钥库本地 ID,键名单位对齐 Android,异常静默降级

应用信息类插件在业务里通常出现在三个位置:启动时的埋点上报、设置页里的“关于本机”、以及需要稳定设备标识的风控与统计。这些场景的共同要求是一次调用拿到全部字段、拿不到时给出可判断的空值、并且不要让初始化失败把应用启动拖崩。所有字符串取值不为 null,不可用时返回空字符串或文档标注的默认值(如默认en默认US初始化失败被内部吞掉,init()返回false,业务侧不需要为它写 try/catch;

文章图片
#flutter#harmonyos#华为 +1
Flutter x_app_utils 应用信息工具鸿蒙适配,ArkTS 聚合设备、包信息、OAID 与密钥库本地 ID,键名单位对齐 Android,异常静默降级

应用信息类插件在业务里通常出现在三个位置:启动时的埋点上报、设置页里的“关于本机”、以及需要稳定设备标识的风控与统计。这些场景的共同要求是一次调用拿到全部字段、拿不到时给出可判断的空值、并且不要让初始化失败把应用启动拖崩。所有字符串取值不为 null,不可用时返回空字符串或文档标注的默认值(如默认en默认US初始化失败被内部吞掉,init()返回false,业务侧不需要为它写 try/catch;

文章图片
#flutter#harmonyos#华为 +1
Flutter x_app_utils 应用信息工具鸿蒙适配,ArkTS 聚合设备、包信息、OAID 与密钥库本地 ID,键名单位对齐 Android,异常静默降级

应用信息类插件在业务里通常出现在三个位置:启动时的埋点上报、设置页里的“关于本机”、以及需要稳定设备标识的风控与统计。这些场景的共同要求是一次调用拿到全部字段、拿不到时给出可判断的空值、并且不要让初始化失败把应用启动拖崩。所有字符串取值不为 null,不可用时返回空字符串或文档标注的默认值(如默认en默认US初始化失败被内部吞掉,init()返回false,业务侧不需要为它写 try/catch;

文章图片
#flutter#harmonyos#华为 +1
Flutter 工具集 project_utils 鸿蒙适配落地,ArkTS 读取系统版本,KeepAliveWrapper 状态缓存、ToastUtils 提示组件零原生改造

走 MethodChannel,返回当前系统的版本字符串;:一个,内部混入,让ListViewTabBarView里的子项在滚出屏幕或切页后保留状态;ToastUtils:对的静态封装,提供showTextshowErrorshowInfohide六个入口。上游三个平台的,返回Android 14之类;;Windows/macOS/Linux:各自的原生版本字符串。OHOS 侧的适配目标因此很明确

文章图片
#flutter#harmonyos#缓存 +1
Flutter 工具集 project_utils 鸿蒙适配落地,ArkTS 读取系统版本,KeepAliveWrapper 状态缓存、ToastUtils 提示组件零原生改造

走 MethodChannel,返回当前系统的版本字符串;:一个,内部混入,让ListViewTabBarView里的子项在滚出屏幕或切页后保留状态;ToastUtils:对的静态封装,提供showTextshowErrorshowInfohide六个入口。上游三个平台的,返回Android 14之类;;Windows/macOS/Linux:各自的原生版本字符串。OHOS 侧的适配目标因此很明确

文章图片
#flutter#harmonyos#缓存 +1
Flutter IANA 时区插件 iana_time_zone 鸿蒙适配落地,基于 systemDateTime 同步接口获取时区

时区在移动端有两种表达方式:一种是“当前比 UTC 多几小时”,另一种是“IANA 时区数据库里的区域名”,例如。后者能表达夏令时规则和同一偏移下的不同地区,跨端同步、日志排查、按用户所在城市展示时间时都更可靠。返回的就是 IANA 名称。;。两者都直接读系统时区设置,不做任何换算。因此 OHOS 侧的适配目标也很明确:找到一个能返回同样语义的系统接口,让应用侧拿到的字符串与另外两端一致。

文章图片
#flutter#harmonyos#华为 +1
Flutter IANA 时区插件 iana_time_zone 鸿蒙适配落地,基于 systemDateTime 同步接口获取时区

时区在移动端有两种表达方式:一种是“当前比 UTC 多几小时”,另一种是“IANA 时区数据库里的区域名”,例如。后者能表达夏令时规则和同一偏移下的不同地区,跨端同步、日志排查、按用户所在城市展示时间时都更可靠。返回的就是 IANA 名称。;。两者都直接读系统时区设置,不做任何换算。因此 OHOS 侧的适配目标也很明确:找到一个能返回同样语义的系统接口,让应用侧拿到的字符串与另外两端一致。

文章图片
#flutter#harmonyos#华为 +1
Flutter 纯 Dart 动态翻译库 flutter_dynamic_translator 鸿蒙适配实践,无 ArkTS 原生代码,基于 ARB 资产运行时切换多语言

调用一次,把读进内存里的;之后所有T.get(key)// 读取 assets/lang/en.arb// "not_exist"(回退 key 本身)T.load是异步的,T.get是同步的。翻译表是进程级静态变量,切换语言只需再调用一次T.load,再触发一次页面重建。

文章图片
#flutter#harmonyos#华为
Flutter 纯 Dart 动态翻译库 flutter_dynamic_translator 鸿蒙适配实践,无 ArkTS 原生代码,基于 ARB 资产运行时切换多语言

调用一次,把读进内存里的;之后所有T.get(key)// 读取 assets/lang/en.arb// "not_exist"(回退 key 本身)T.load是异步的,T.get是同步的。翻译表是进程级静态变量,切换语言只需再调用一次T.load,再触发一次页面重建。

文章图片
#flutter#harmonyos#华为
flutter_channel_json 鸿蒙 Flutter 插件适配实测,补齐 ArkTS 四字段契约模型与 MethodChannel 通道实现,Dart 侧零改动,打通四端统一 JSON 返回

的消息体在 Flutter 侧是Map、在原生侧是各自的字典类型,两端对「这条消息长什么样」没有天然约束。code : int 状态码,成功固定 200,失败默认 500message : String 消息data : T?数据success : bool 是否成功并为每一端提供同构的实现:Dart 的、Kotlin 与 Swift 的同名模型、以及本次适配补齐的 ArkTS 模型。原生侧把结果

#flutter#harmonyos#华为
    共 406 条
  • 1
  • 2
  • 3
  • 41
  • 请选择