在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙ArkUI-X平臺差異化:【運行態差異化(@ohos.deviceInfo)】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-25 16:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

平臺差異化

簡介

跨平臺使用場景是一套ArkTS代碼運行在多個終端設備上,如AndroidiOSOpenHarmony(含基于OpenHarmony發行的商業版,如HarmonyOS Next)。當不同平臺業務邏輯不同,或使用了不支持跨平臺的API,就需要根據平臺不同進行一定代碼差異化適配。當前僅支持在代碼運行態進行差異化,接下來詳細介紹場景及如何差異化適配。

使用場景及能力

使用場景

平臺差異化適用于以下兩種典型場景:

  1. 自身業務邏輯不同平臺本來就有差異;
  2. 在OpenHarmony上調用了不支持跨平臺的API,這就需要在OpenHarmony上仍然調用對應API,其他平臺通過Bridge橋接機制進行差異化處理;
  3. 開發前請熟悉鴻蒙開發指導文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]點擊或者復制轉到。

判斷平臺類型

可以通過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-ignore
    return wifiManager.isWifiActive();
  }
}

`HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`

搜狗高速瀏覽器截圖20240326151450.png
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(() = > {

    })
  }
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Android
    +關注

    關注

    12

    文章

    3972

    瀏覽量

    130030
  • HarmonyOS
    +關注

    關注

    80

    文章

    2121

    瀏覽量

    32712
  • OpenHarmony
    +關注

    關注

    29

    文章

    3847

    瀏覽量

    18459
  • 鴻蒙OS
    +關注

    關注

    0

    文章

    191

    瀏覽量

    4955
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    ArkUI-X平臺差異化

    邏輯不同,或使用了不支持跨平臺的API,就需要根據平臺不同進行一定代碼差異化適配。當前僅支持在代碼運行進行
    發表于 06-10 23:08

    SPICE差異化

    SPICE差異化
    發表于 05-22 08:11

    如何將cadence17.2的原理圖進行差異化對比?

    cadence17.2的原理圖進行差異化對比怎么做,沒有找到那個下拉菜單呀
    發表于 09-20 04:40

    DevEco Studio 3.1差異化構建打包,提升多版本應用開發效率

    HarmonyOS應用及服務的一站式集成開發環境。本次分享DevEco Studio 3.1上線的新特性-差異化構建打包,定制多目標構建產物。 很多應用需要根據具體業務來定制對應場景的工程,舉個例子,同一個
    發表于 12-09 11:19

    寬帶差異化服務解決方案

    【摘要】 本文通過分析互聯網業務迅猛發展對運營商帶來的機遇和挑戰,提出寬帶差異化服務在寬帶接入、QoS、資源分配方面差異化的多種技術手段,說明在業務差異、服務
    發表于 05-16 10:01 ?0次下載

    寬帶差異化服務解決方案

    寬帶差異化服務解決方案摘要: 本文通過分析互聯網業務迅猛發展對運營商帶來的機遇和挑戰,提出寬帶差異化服務在寬帶接入、QoS、資源分配方面差異化
    發表于 05-23 11:12 ?18次下載

    移動操作系統帶來差異化設計

    移動操作系統帶來差異化設計   移動設備市場一直以來都非常火爆,特別是具有蘋果的iPhone和Verizon Wireless公司的Droid的智能手機市場。這些平臺上的硬件
    發表于 04-24 12:02 ?1399次閱讀

    三個IC設計差異化的發展趨勢分析

    對于設計師來說,難的是如何讓自己的IC差異化,能給系統廠商帶來更多的好處,這里,結合領先半導體廠商的做法,總結三個IC設計差異化的趨勢。
    發表于 03-15 09:29 ?820次閱讀
    三個IC設計<b class='flag-5'>差異化</b>的發展趨勢分析

    差異化才是王道 這6款黑科技神機讓你與眾不同

    如今,智能手機行業同質化嚴重的現象可以說是人盡皆知,行業人士紛紛高呼“我們需要差異化的創新!”大家都明白差異化才是王道,可是那些智能手機的產品經理們,是否考慮過什么才是消費者真正想要的差異化呢?
    發表于 10-13 17:53 ?758次閱讀

    一種隱私保護的差異化數據分享協議

    參與式感知中用戶不僅對數據匹配度有要求,對數據差異化也同樣有要求,為了既能滿足用戶對數據匹配度和差異化數據的需求,也能保護用戶的偏好隱私,提出了一種隱私保護的差異化數據分享協議。該協議首先將交互雙方
    發表于 01-07 10:41 ?0次下載

    安森美有哪些優勢和差異化競爭策略

    眾多車用芯片供應商似乎都提供相似的產品線,安森美有哪些優勢和差異化競爭策略呢?
    的頭像 發表于 12-03 16:13 ?8558次閱讀
    安森美有哪些優勢和<b class='flag-5'>差異化</b>競爭策略

    鴻蒙ArkUI-X跨語言調用說明:平臺差異化【Android、ios動態化】

    ArkUI-X支持動態化,使用者可以根據自己需要動態發布跨平臺內容,從而使跨平臺部分和宿主應用進行解耦。
    的頭像 發表于 05-23 14:38 ?1455次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b>跨語言調用說明:<b class='flag-5'>平臺</b><b class='flag-5'>差異化</b>【Android、ios動態化】

    江蘇移動攜手華為率先完成全省范圍智能差異化體驗保障商用驗證

    近日,江蘇移動攜手華為率先完成全省范圍智能差異化體驗保障商用驗證,具備端到端智能差異化體驗保障能力。
    的頭像 發表于 05-29 17:04 ?787次閱讀

    易飛揚走過2024——避開紅海 專注差異化

    差異化是中小企業長期的經營戰略。一直以來,易飛揚以其務實的差異化戰略游弋于光模塊細分市場,推出了一系列創新產品,并在2024贏得了全球市場的廣泛肯定。
    的頭像 發表于 12-31 10:05 ?560次閱讀

    愛立信借助差異化連接提升5G網絡體驗

    愛立信消費者實驗室最新報告《借助差異化連接提升5G網絡體驗》顯示,在全球范圍內,約40%的用戶并不滿足于當前“盡力而為”的5G業務(中國大陸這一比例為20%)。與此同時,用戶差異化連接的需求在不斷增長,41%的中國用戶愿意為差異化
    的頭像 發表于 01-17 09:25 ?6799次閱讀
    主站蜘蛛池模板: 国模网站 | 久久久久久久久久免免费精品 | 亚洲嫩草影院在线观看 | 亚洲精品久久久久久久蜜桃 | 一区二区三区四区五区 | 欧美另类69xxxxxhd | 久草视频在线免费看 | 久久这里只有精品1 | 性欧美在线 | 久久福利青草精品资源站免费 | 久久天天躁夜夜躁狠狠 | 俄罗斯毛片基地 | 婷婷午夜天 | 男女爱爱免费视频 | 永久免费的啪啪免费的网址 | 午夜男人影院 | 国产一级特黄老妇女大片免费 | 欧美视频精品一区二区三区 | 777色狠狠一区二区三区香蕉 | 亚洲jjzzjjzz在线观看 | 成人牲交一极毛片 | 五月婷婷六月丁香 | 色综合亚洲天天综合网站 | 特级中国aaa毛片 | 国产成人经典三级在线观看 | 四虎永久在线精品免费观看地址 | jlzzjlzz亚洲日本 | 夜夜精品视频 | 久久99色 | 午夜影吧 | 亚洲视频在线视频 | 高清一区二区 | 亚洲日本欧美日韩高观看 | 老师叫我下面含着精子去上课 | 国产三级免费观看 | 亚洲激情综合 | 国产香蕉视频在线 | 51影院在线观看成人免费 | 亚洲成a人片77777潘金莲 | 中文字幕一区二区三区在线观看 | 四虎永久地址4hu紧急入口 |