当前位置: 首页 > wzjs >正文

手机端网站模板下载云南大理拍婚纱照价格表

手机端网站模板下载,云南大理拍婚纱照价格表,谷歌账号,如何去掉Wordpress访问网站跨平台使用场景是一套ArkTS代码运行在多个终端设备上,如Android、iOS、OpenHarmony(含基于OpenHarmony发行的商业版,如HarmonyOS Next)。当不同平台业务逻辑不同,或使用了不支持跨平台的API,就需要根据平台…

跨平台使用场景是一套ArkTS代码运行在多个终端设备上,如Android、iOS、OpenHarmony(含基于OpenHarmony发行的商业版,如HarmonyOS Next)。当不同平台业务逻辑不同,或使用了不支持跨平台的API,就需要根据平台不同进行一定代码差异化适配。当前仅支持在代码运行态进行差异化,接下来详细介绍场景及如何差异化适配。

使用场景

平台差异化适用于以下两种典型场景:

1.自身业务逻辑不同平台本来就有差异;
2.在OpenHarmony上调用了不支持跨平台的API,这就需要在OpenHarmony上仍然调用对应API,其他平台通过Bridge桥接机制进行差异化处理;

判断平台类型

可以通过let osName: string = deviceInfo.osFullName;获取对应OS名字,该接口已支持跨平台,不同平台上其返回值如下:

OpenHarmony上,osName等于OpenHarmony-XXX
Android上,osName等于Android XXX
iOS上,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:default@CompileArkTS... 
> hvigor ERROR: ArkTS Compiler Error
ERROR: ArkTS:ERROR File: D:/work/git/play-arkuix/Test_ACE/feature/src/main/ets/pages/Index.ets:64:31
'isWifiActive' can't 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桥接机制处理,示例代码如下:

1.新建一个WiFiUtil.ts,并忽略告警:

import wifiManager from '@ohos.wifiManager'export class WiFiUtil {static isActive(): boolean {//@ts-ignorereturn wifiManager.isWifiActive();}
}

2.根据不同平台差异化逻辑,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(() => {})}
}
http://www.dtcms.com/wzjs/836742.html

相关文章:

  • 长春住房和城乡建设部官方网站wordpress 流程插件
  • 关于网站建设的论坛深圳专业做网站排名公司
  • 推广引流网站中企动力网站报价
  • 合肥网站制作推广python做博客网站
  • 大兴网站建设价格廊坊网站建
  • 嘉瑞建设有限公司网站北京战略咨询公司
  • 哈尔滨网站建设网站开发广州门户网站建设
  • 爱做片视频网站哈尔滨网站制作
  • 网站主页图片怎么换北京宣传册高端设计公司
  • 环境艺术设计网站推荐北京有哪些著名网站
  • 案例较少如何做设计公司网站南海区住房城乡建设和水务局网站
  • 做外贸纱线用什么网站长春做网站的公司哪家好
  • 网站开发与运维收费明细公司建设网站的 计划书
  • 长沙有网站建站吗网站轮播图片特效
  • 三网一体网站建设企业网站建设找智恒网络
  • 如何创建自己公司网站小公司如何做网站隔离
  • 服务器和网站的关系网页和网站做哪个好用吗
  • 微信公众平台网站建设新闻报道晋城手机网站建设
  • 163网站视频动做网络公司排名100名
  • 中国建设银行个人信息网站宽带维修
  • 如何验证网站自己做彩票网站犯法吗
  • 建设厅网站上保存键看不见可以自己做网站这么做
  • 企业网站推广方案上海建设网站企业邮箱网站建设服务
  • 怎么做软文代发平台网站珠海建设企业网站的公司
  • 峨山网站建设公众号怎么做微网站
  • 做网站 广州网站没域名
  • 荣成住房和城乡建设部网站移动端关键词优化
  • 哪些网站可以seo襄阳市建设厅官方网站
  • 夏邑网站建设营销策划公司是做什么的
  • 网站建设责任分工表巢湖网站制作