公司做网站可以永久买断吗,在淘宝做网站和网络公司做网站区别,设计类型的网站,定位网站关键词平台差异化
简介
跨平台使用场景是一套ArkTS代码运行在多个终端设备上#xff0c;如Android、iOS、OpenHarmony#xff08;含基于OpenHarmony发行的商业版#xff0c;如HarmonyOS Next#xff09;。当不同平台业务逻辑不同#xff0c;或使用了不支持跨平台的API#xf… 平台差异化
简介
跨平台使用场景是一套ArkTS代码运行在多个终端设备上如Android、iOS、OpenHarmony含基于OpenHarmony发行的商业版如HarmonyOS Next。当不同平台业务逻辑不同或使用了不支持跨平台的API就需要根据平台不同进行一定代码差异化适配。当前仅支持在代码运行态进行差异化接下来详细介绍场景及如何差异化适配。
使用场景及能力
使用场景
平台差异化适用于以下两种典型场景
自身业务逻辑不同平台本来就有差异在OpenHarmony上调用了不支持跨平台的API这就需要在OpenHarmony上仍然调用对应API其他平台通过Bridge桥接机制进行差异化处理开发前请熟悉鸿蒙开发指导文档gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。
判断平台类型
可以通过let osName: string deviceInfo.osFullName;获取对应OS名字该接口已支持跨平台不同平台上其返回值如下:
OpenHarmony上osName等于OpenHarmony XXXAndroid上osName等于Android XXXiOS上osName等于iOS XXX
示例如下:
test() {let osName: string deviceInfo.osFullName;console.log(osName osName);if (osName.startsWith(OpenHarmony)) {// OpenHarmony应用平台上业务逻辑} else if (osName.startsWith(Android)) {// Android应用平台上业务逻辑} else if (osName.startsWith(iOS)) {// iOS应用平台上业务逻辑}
}
非跨平台API处理
在跨平台工程中如果调用非跨平台API编译时IDE会触发拦截并报错。接下来以调用wifiManager.isWifiActive()判断WiFi开关是否打开为例这个API当前是不支持跨平台的。
示例代码 test2(){let isActive wifiManager.isWifiActive();}
IDE报错 hvigor ERROR: Failed :feature:defaultCompileArkTS... hvigor ERROR: ArkTS Compiler Error
ERROR: ArkTS:ERROR File: D:/work/git/play-arkuix/Test_ACE/feature/src/main/ets/pages/Index.ets:64:31isWifiActive cant support crossplatform application.COMPILE RESULT:FAIL {ERROR:2}hvigor ERROR: BUILD FAILED in 10 s 753 ms
此时可以将涉及到的API写到一个后缀为.ts文件然后在不支持的API上面增加// ts-ignore或// ts-nocheck屏蔽告警开发者需要保证只在OpenHarmony应用平台上才运行这一段逻辑Android和iOS应用平台上可以借用Bridge桥接机制处理示例代码如下
新建一个WiFiUtil.ts并忽略告警
import wifiManager from ohos.wifiManagerexport class WiFiUtil {static isActive(): boolean {//ts-ignorereturn wifiManager.isWifiActive();}
} 根据不同平台差异化逻辑Android和iOS应用平台上通过[Bridge机制]桥接到对应平台的业务逻辑实现上
checkTestWiFi(): void {let osName: string deviceInfo.osFullName;console.log(osName osName);if (osName.startsWith(OpenHarmony)) {// OpenHarmony应用平台let isActive WiFiUtil.isActive();this.message isActive ? 已连接 : 未连接;} else {// Android和iOS应用平台上,中转到原生let bridge Bridge.createBridge(Bridge);bridge.callMethod(isWiFiActive).then((res) {// 业务逻辑处理...}).catch(() {})}
} 鸿蒙开发岗位需要掌握那些核心要领
目前还有很多小伙伴不知道要学习哪些鸿蒙技术不知道重点掌握哪些为了避免学习时频繁踩坑最终浪费大量时间的。
自己学习时必须要有一份实用的鸿蒙Harmony NEXT资料非常有必要。 这里我推荐根据鸿蒙开发官网梳理与华为内部人员的分享总结出的开发文档。内容包含了【ArkTS、ArkUI、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战】等技术知识点。
废话就不多说了接下来好好看下这份资料。
如果你是一名Android、Java、前端等等开发人员想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。鸿蒙OpenHarmony知识←前往。下面是鸿蒙开发的学习路线图。 针对鸿蒙成长路线打造的鸿蒙学习文档。鸿蒙OpenHarmony 学习手册共计1236页与鸿蒙OpenHarmony 开发入门教学视频帮助大家在技术的道路上更进一步。
其中内容包含
《鸿蒙开发基础》鸿蒙OpenHarmony知识←前往
ArkTS语言安装DevEco Studio运用你的第一个ArkTS应用ArkUI声明式UI开发.……
《鸿蒙开发进阶》鸿蒙OpenHarmony知识←前往
Stage模型入门网络管理数据管理电话服务分布式应用开发通知与窗口管理多媒体技术安全技能任务管理WebGL国际化开发应用测试DFX面向未来设计鸿蒙系统移植和裁剪定制……
《鸿蒙开发实战》鸿蒙OpenHarmony知识←前往
ArkTS实践UIAbility应用网络案例……
最后
鸿蒙是完全具备无与伦比的机遇和潜力的预计到年底将有 5,000 款的应用完成原生鸿蒙开发这么多的应用需要开发也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长学习鸿蒙势在必行