精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

    文章

    3923

    瀏覽量

    127128
  • HarmonyOS
    +關注

    關注

    79

    文章

    1967

    瀏覽量

    30013
  • OpenHarmony
    +關注

    關注

    25

    文章

    3658

    瀏覽量

    16144
  • 鴻蒙OS
    +關注

    關注

    0

    文章

    188

    瀏覽量

    4367
收藏 人收藏

    評論

    相關推薦

    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次下載

    Orange的IPTV挑戰:建立非獨家內容的差異化優勢

    Orange的IPTV挑戰:建立非獨家內容的差異化優勢 2010年1月19日 Strategy Analytics發布最新研究報告“Orange的IPTV挑戰:建立非獨家內容的差異化優勢”。法國競爭委員會最近認
    發表于 01-20 09:42 ?738次閱讀

    3G成敗還看差異化

    3G成敗還看差異化 在互聯網、移動互聯網及信息服務領域,我國電信企業3G發展同時還面臨蘋果、IBM、諾基亞、微軟、谷歌及廣電部門等強有力
    發表于 02-06 09:10 ?428次閱讀

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

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

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

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

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

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

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

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

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

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

    如何設計出具有差異化的芯片

    在開展下一代SoC設計的過程中,對客戶需求和市場需求的預測無疑是最主要的驅動因素,相信大家都希望設計出跟別家不一樣的、有賣點的產品,因此如何設計出具有差異化的芯片是開發者設計工作中的重中之重。
    的頭像 發表于 03-30 13:44 ?1521次閱讀

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

    ArkUI-X支持動態化,使用者可以根據自己需要動態發布跨平臺內容,從而使跨平臺部分和宿主應用進行解耦。
    的頭像 發表于 05-23 14:38 ?782次閱讀
    <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 ?449次閱讀