HarmonyOS6 应用升级经验分享

HarmonyOS6 应用升级经验分享

前言

最近鸿蒙应用市场支持上架HarmonyOS 6 正式版的应用了,我也把 《可可图片编辑》 升级到6,并且已经发布上架了。

这里就分享下升级到 HarmonyOS 6 的经验。

配置文件处理

优先你需要考虑到是,你的应用希望运行在哪些系统版本或者支持哪些API版本到设备上,比如API12、API13、API14、API20等等。

一般情况下的升级都是向下兼容,就是你需要保证低版本设备是可以正常使用你的应用功能,同时高版本的设备也能体验你的新特性。

这里就首先就需要考虑 compatibleSdkVersiontargetSdkVersion了。

  1. compatibleSdkVersion:应用/元服务运行所需兼容的最低SDK版本

  2. targetSdkVersion:应用/元服务运行所需目标SDK版本

通俗的讲你希望你的应用运行在最低版本是API14的手机上,同时最高版本是API20的手机上,那么你可以这样配置:

json 复制代码
"targetSdkVersion": "6.0.0(20)",

"compatibleSdkVersion": "5.0.2(14)",

具体路径在:项目/build-profile.json5

ArkTS中的处理

假设这样的需求,你希望当前功能在API20下使用,如果不支持到设备就弹出个提醒即可,那么你可以使用 caniuse 或者 try catch来处理

canIUse

查询系统是否具备某个系统能力。

示例:

typescript 复制代码
if (canIUse('你的api的能力集')) {

  //   支持

} else {

  //   不支持

}

系统能力(SystemCapability,简称SysCap),指操作系统中每一个相对独立的特性。不同的设备对应不同的系统能力集,每个系统能力对应一个或多个API。开发者可根据系统能力来判断是否可以使用某接口。

在IDE工具中也可以方便查看某个API的具体能力集:

try catch

一种常见的方式就是try-catch ,捕获错误,当出现程序出错了,为了避免程序崩溃,使用try将其捕获,catch用来错误处理。

typescript 复制代码
try {

  const res = px2vp(100)

} catch (e) {

  console.log("错误,不支持")

}

API版本判断

如果是这样的场景呢,API14版本下执行代码A,API20版本下,执行代码B。考虑这个场景,我们可以使用 @kit.BasicServicesKit 中的sdkApiVersion 来实现,sdkApiVersion返回 系统软件API版本,我们将它封装起来,这样就可以在ArkTS中和ArkUI中直接使用了。

  1. ArkTS

```typescript

if(deviceInfo.sdkApiVersion===20){

console.log("API20")

}

```

  1. ArkUI

```jsx

if (this.sdkApiVersion >= 20) {

Text('应用20')

} else {

Text('应用不是20')

}

```

相关推荐
晚烛1 天前
Flutter + OpenHarmony 导航与状态管理架构:构建可维护、可扩展、高性能的鸿蒙应用骨架
flutter·架构·harmonyos
萌虎不虎1 天前
【在鸿蒙系统中实现录制视频预览功能】
华为·音视频·harmonyos
萌虎不虎1 天前
【鸿蒙ETS中WebSocket使用说明】
websocket·华为·harmonyos
子榆.1 天前
Flutter 与开源鸿蒙(OpenHarmony)工程化实践:CI/CD、性能监控与多端发布
flutter·开源·harmonyos
夏小鱼的blog1 天前
【HarmonyOS应用开发入门】第三期:ArkTS语言基础(一)
harmonyos
子榆.2 天前
Flutter 与开源鸿蒙(OpenHarmony)国际化与无障碍适配指南:打造真正包容的跨平台应用
flutter·华为·开源·harmonyos
子榆.2 天前
Flutter 与开源鸿蒙(OpenHarmony)深度集成:从原理到实战进阶
flutter·华为·开源·harmonyos
二流小码农2 天前
鸿蒙开发:个人开发者如何使用华为账号登录
android·ios·harmonyos
江澎涌2 天前
鸿蒙 SDK 发布实战:JWorker 上架 ohpm 全流程
typescript·harmonyos·arkts
子榆.2 天前
Flutter 与开源鸿蒙(OpenHarmony)的融合:跨平台开发新纪元
flutter·华为·开源·harmonyos