国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

鴻蒙ArkUI-X跨語言調用說明:【平臺橋接開發指南(Android)】

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

掃碼添加小助手

加入工程師交流群

平臺橋接開發指南

平臺橋接用于客戶端(ArkUI)和平臺(AndroidiOS)之間傳遞消息,即用于ArkUI與平臺雙向數據傳遞、ArkUI側調用平臺的方法、平臺調用ArkUI側的方法。本文主要介紹Android平臺與ArkUI交互,ArkUI側具體用法請參考[Bridge API],Android側參考[BridgePlugin]。

Android平臺與ArkUI交互

開發前請熟悉鴻蒙開發指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]點擊或者復制轉到。

創建平臺橋接

1、在ArkUI側創建平臺橋接。指定名稱,該名稱應與Android側平臺橋接的名稱一致。通過創建的該對象即可調用平臺橋接的方法。

// xxx.ets

// 導入平臺橋接模塊
import bridge from '@arkui-x.bridge';

// 創建平臺橋接實例
const bridgeImpl = bridge.createBridge('Bridge');

2、在Android側創建BridgePlugin類。指定名稱,該名稱應與ArkUI側平臺橋接的名稱一致。通過創建的該對象即可調用平臺橋接的方法。

// xxx.java

Bridge bridge = new Bridge(this, "Bridge", getInstanceId());

場景一:ArkUI側向Android側傳遞數據

1、ArkUI側向Android側傳遞數據。

// xxx.ets

bridgeImpl.sendMessage('text').then((res)= >{
    // 監聽Android側的回執
    console.log('response: ' + res);
}).catch((err) = > {
    console.log('error: ' + JSON.stringify(err));
});

2、Android側接收來自ArkUI側的數據。

// xxx.java

public Bridge(Context context, String name, int id) {
    super(context, name, id);
    setMessageListener(this);
}

// 注冊回調,監聽ArkUI側的數據傳遞
@Override
public Object onMessage(Object data) {
    // 返回回執給ArkUI側
    return "java onMessage success";
}

場景二:Android側向ArkUI側傳遞數據

1、Android側向ArkUI側發送數據。

// xxx.java

String[] data = { "message", "from", "android" };
bridge.sendMessage(data);

2、ArkUI側設置回調,用于接收Android側發送的數據。

// xxx.ets

bridgeImpl.setMessageListener((message) = > {
    console.log('receive message: ' + message);

    // 收到消息后,向Android側發送回執
    return "ArkUI reveice message success";
});

3、Android側注冊回調,監聽ArkUI側收到數據后的回執。

// xxx.java

public Bridge(Context context, String name, int id) {
    super(context, name, id);
    setMessageListener(this);
}

// 注冊回調,監聽ArkUI側的回執
@Override
public void onMessageResponse(Object data) {}

場景三:ArkUI側調用Android側的方法

1、在ArkUI側調用Android側的方法。

// xxx.ets

bridgeImpl.callMethod('platformCallMethod').then((res)= >{
    console.log('result: ' + res);
}).catch((err) = > {
    console.error('error: ' + JSON.stringify(err));
});

2、在Android側實現被調用的方法。

// xxx.java

public platformCallMethod() {
  return "call java platformCallMethod success";
}

場景四:Android側調用ArkUI側的方法

1、注冊ArkUI側方法,供Android側調用。

// xxx.ets

function getString() {
  return 'call js getString success';
}

bridgeImpl.registerMethod({ name: 'getString', method: getString });

2、Android側調用ArkUI側的方法。

Object[] paramObject = {};
MethodData methodData = new MethodData("getString", paramObject);
bridge.callMethod(methodData);

場景五:ArkUI側監聽Android側的方法

1、注冊ArkUI側方法,供Android側調用。

// xxx.ets

bridgeImpl.registerMethod({ name: 'getString', method: getString });

2、移除已注冊的ArkUI側方法。

// xxx.ets

bridgeImpl.unRegisterMethod('getString');

3、在Android側注冊回調,監聽方法注冊、注銷。

// xxx.java

public Bridge(Context context, String name, int id) {
    super(context, name, id);
    setMethodResultListener(this);
}

@Override
public void onSuccess(Object o) {}

@Override
public void onError(String s, int i, String s1) {}

@Override
public void onMethodCancel(String s) {}

場景示例

本場景展示了當ArkUI頁面啟動時,調用Android側方法,并將Android側方法的返回值顯示在頁面上。點擊按鈕,ArkUI側發送數據到Android側,Android側收到數據后,返回回執數據,并將回執數據顯示在頁面上。

ArkUI側

編寫ArkUI頁面Index.ets。

// Index.ets

// 導入平臺橋接模塊
import bridge from '@arkui-x.bridge';

@Entry
@Component
struct Index {
  // 創建平臺橋接對象
  private bridgeImpl = bridge.createBridge('Bridge');
  @State helloArkUI: string = '';
  @State nativeResponse: string = '';

  aboutToAppear() {
    this.getHelloArkUI();
  }

  getHelloArkUI() {
    // 調用Android側方法
    this.bridgeImpl.callMethod('getHelloArkUI').then((result: string) = > {
      // 通過狀態變量,將Android側方法的返回值顯示在頁面上
      this.helloArkUI = result;
    });
  }

  build() {
    Row() {
      Column() {
        Text(this.helloArkUI)
          .fontSize(15)
          .margin(10)
        Button('sendMessage')
          .fontSize(15)
          .margin(10)
          .onClick(async () = > {
            // 發送數據到Android側,并通過狀態變量,將Android側的響應數據顯示在頁面上
            this.nativeResponse = await this.bridgeImpl.sendMessage('Hello ArkUI-X!');
          })
        Text('Response from Native: ' + this.nativeResponse)
          .fontSize(15)
          .margin(10)
      }
      .width('100%')
    }
    .height('100%')
  }
}
Android側
// Bridge.java

package com.example.bridgestage;

import android.content.Context;

// 引用平臺橋接模塊
import ohos.ace.adapter.capability.bridge.BridgePlugin;
import ohos.ace.adapter.capability.bridge.IMessageListener;

public class Bridge extends BridgePlugin implements IMessageListener {
    public Bridge(Context context, String name, int id) {
        super(context, name, id);

        setMessageListener(this);
    }

    // Android側方法,供ArkUI側調用
    public String getHelloArkUI() {
        return "Hello ArkUI!";
    }

    // 注冊回調,接收ArkUI側發來的數據
    @Override
    public Object onMessage(Object object) {
        return "java onMessage success";
    }

    @Override
    public void onMessageResponse(Object object) {}
}
//	EntryMainActivity.java

package com.example.bridgestage;

import android.os.Bundle;
import ohos.stage.ability.adapter.StageActivity;

public class EntryMainActivity extends StageActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // 建立與ArkUI側同名的平臺橋接,即可用于消息傳遞
        new Bridge(this, "Bridge", getInstanceId());

        super.setInstanceName("com.example.bridgestage:entry:MainAbility:");
        super.onCreate(savedInstanceState);
    }
}

`HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`

搜狗高速瀏覽器截圖20240326151450.png

// MyApplication.java

package com.example.bridgestage;

import ohos.stage.ability.adapter.StageApplication;

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

    關注

    80

    文章

    2153

    瀏覽量

    36051
  • OpenHarmony
    +關注

    關注

    33

    文章

    3952

    瀏覽量

    21102
  • 鴻蒙OS
    +關注

    關注

    0

    文章

    193

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    鴻蒙ArkUI-X平臺開發:【SDK目錄結構介紹】

    本文檔配套ArkUI-X,將OpenHarmony ArkUI開發框架擴展到不同的OS平臺,比如Android和iOS
    的頭像 發表于 05-20 16:28 ?1817次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平臺</b><b class='flag-5'>開發</b>:【SDK目錄結構介紹】

    鴻蒙ArkUI-X語言調用說明:【平臺開發指南Android)Bridge API】

    本模塊提供ArkUI端和Android或iOS平臺端消息通信的功能,包括數據傳輸、方法調用和事件調用。需配套
    的頭像 發表于 05-25 16:30 ?1815次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>語言</b><b class='flag-5'>調用</b><b class='flag-5'>說明</b>:【<b class='flag-5'>平臺</b><b class='flag-5'>橋</b><b class='flag-5'>接</b><b class='flag-5'>開發指南</b>(<b class='flag-5'>Android</b>)Bridge API】

    鴻蒙ArkUI-X語言調用說明:【平臺開發指南Android)BridgePlugin】

    本模塊提供ArkUI端和Android平臺端消息通信的功能,包括數據傳輸、方法調用和事件調用。需配套Ar
    的頭像 發表于 05-22 14:52 ?2193次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>語言</b><b class='flag-5'>調用</b><b class='flag-5'>說明</b>:【<b class='flag-5'>平臺</b><b class='flag-5'>橋</b><b class='flag-5'>接</b><b class='flag-5'>開發指南</b>(<b class='flag-5'>Android</b>)BridgePlugin】

    ArkUI-X開發指南:【SDK配置和構建說明

    ArkUI-X SDK是ArkUI-X開源項目的編譯產物,可將ArkUI-X SDK集成到現有Android和iOS應用工程中,使開發者基于
    的頭像 發表于 05-25 16:48 ?4442次閱讀
    <b class='flag-5'>ArkUI-X</b><b class='flag-5'>開發指南</b>:【SDK配置和構建<b class='flag-5'>說明</b>】

    ArkUI-X平臺框架接入指南

    ArkUI平臺框架(ArkUI-X)進一步將ArkUI開發框架擴展到了多個OS
    發表于 05-18 18:21

    ArkUI-XAndroid平臺動態化開發指南

    目的; 場景2:特性Bundle動態化,特性和宿主應用發布解耦; 開發指南 目錄說明 動態加載時要求應用沙箱內目錄架構如下所示: /data/data/應用/files/arkui-x
    發表于 06-15 23:33

    ArkUI-XAndroid聯動編譯開發指南

    .arkui-x/android/app/build.gradle目錄下設置configBuildFlag開關,可觸發聯動ArkTS源碼編譯腳本,默認為false,不執行編譯ArkTS腳本文件。 //執行聯動
    發表于 06-16 22:55

    ArkUI-X平臺應用改造指南

    ArkUI-X平臺應用改造指南 現狀與訴求 隨著 HarmonyOS Next 5.0 版本正式發布,眾多開發者基于 ArkTS
    發表于 06-16 23:05

    ArkUI-X平臺技術落地-華為運動健康(一)

    開發工作量以及保證體驗一致性,對于運動健康App而言,顯得尤為重要。作為鴻蒙NEXT系統生態中的重要一員,ArkUI-X框架是我們平臺技術
    發表于 06-18 22:53

    ArkUI-X應用工程結構說明

    )并可以部署到相應的OS平臺,降低平臺應用開發成本。 應用工程目錄結構介紹 平臺應用工程目錄
    發表于 06-19 23:11

    ArkUI-X平臺Bridge說明

    的三方庫等。 說明 平臺支持ArkUI調用Androi
    發表于 06-19 23:12

    鴻蒙ArkUI-X平臺技術:【開發初體驗】

    在DevEco Studio中導入ArkUI-X Sample,快速創建平臺工程。
    的頭像 發表于 05-17 15:54 ?1895次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平臺</b>技術:【<b class='flag-5'>開發</b>初體驗】

    鴻蒙ArkUI-X平臺開發:【 應用工程結構說明

    本文檔配套ArkUI-X,將OpenHarmony ArkUI開發框架擴展到不同的OS平臺,比如Android和iOS
    的頭像 發表于 05-19 21:05 ?1437次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>平臺</b><b class='flag-5'>開發</b>:【 應用工程結構<b class='flag-5'>說明</b>】

    鴻蒙ArkUI-X語言調用說明:【平臺(@arkui-x.bridge)】

    平臺用于客戶端(ArkUI)和平臺Android或iOS)之間傳遞消息,即用于
    的頭像 發表于 05-21 15:09 ?1849次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkUI-X</b><b class='flag-5'>跨</b><b class='flag-5'>語言</b><b class='flag-5'>調用</b><b class='flag-5'>說明</b>:【<b class='flag-5'>平臺</b><b class='flag-5'>橋</b><b class='flag-5'>接</b>(@<b class='flag-5'>arkui-x</b>.bridge)】

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

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