精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

JSFA調用PA之三Ability調用方式

原創
系統 OpenHarmony
我們借助官方文檔的案例來解讀一下 Ability 調用方式的具體實現方法。

??想了解更多內容,請訪問:??

??51CTO和華為官方合作共建的鴻蒙技術社區??

??https://harmonyos.51cto.com??

引言

  • 【FFH】JSFA調用PA(一)Ability概念及Ability與Internal Ability
  • 【FFH】JSFA調用PA(二) Internal Ability調用方式

上兩篇文章我們已經了解到了Ability的概念,還有JS FA調用Java PA兩種方式,Ability和Internal Ability的區別,還有第二篇文章對InternalAbility調用方式的講解。

接下來我們借助官方文檔的案例來解讀一下 Ability 調用方式的具體實現方法。

在此之前,我們先來看一下一些相關概念。

相關概念

RPC( Remote Procedure Call)

Ability方式中,與FA通過RPC方式通信,先來了解一下什么是RPC,RPC 是 Remote Procedure Call ,翻譯過來就是遠程過程調用,說白了就是一個機器遠程調用并執行另一個機器上的函數。

所以他是個比較寬泛的概念,其中我們經常用到的HTTP協議就屬于常見的一種RPC實現方式。

在HarmonyOS有很多地方都用到了RPC方式通信,比如跨設備調用,遠程拉起FA,FA的遷移流轉等等。

Intent

了解完什么是RPC,那么RPC具體是通過什么讓發送方和接收機方知道要干什么的呢?其實就是接下來我們要說的對象之間傳遞信息的載體—Intent。

開發者的PA首次被FA連接時回調,并返回IRemoteObject對象,用于后續的業務通信。開發者需要繼承Ability類并重寫onConnect(Intent: intent)方法,其中該方法的參數就是Intent,所以他到底是拿來干嘛的呢?

在HarmonyOS中提供了Intent機制來協助Ability之間的通信,例如,當一個Ability需要啟動另一個Ability時,或者一個AbilitySlice需要導航到另一個AbilitySlice時。

Intent是一個將要執行的動作的抽象的描述,在HarmonyOS中由以下元素構成:

用大白話講,Intent就是作為Ability之間交流的粘合劑,接收方Ability可以從Intent獲得到發送方發送了什么請求。

JS FA調用Java PA — Ability調用方式

接下來進入正題。

JS FA端

這部分我們就不細說,因為和InternalAbility的實現方法差不多,只是action.abilityType值不一樣,要具體了解就看看上一篇文章吧。

// abilityType: 0-Ability; 1-Internal Ability
const ABILITY_TYPE_EXTERNAL = 0;
const ABILITY_TYPE_INTERNAL = 1;
// syncOption(Optional, default sync): 0-Sync; 1-Async
const ACTION_SYNC = 0;
const ACTION_ASYNC = 1;
const ACTION_MESSAGE_CODE_PLUS = 1001;
export default {
plus: async function() {
var actionData = {};
actionData.firstNum = 1024;
actionData.secondNum = 2048;

var action = {};
action.bundleName = 'com.example.hiaceservice';
action.abilityName = 'com.example.hiaceservice.ComputeServiceAbility';
action.messageCode = ACTION_MESSAGE_CODE_PLUS;
action.data = actionData;
action.abilityType = ABILITY_TYPE_EXTERNAL;
action.syncOption = ACTION_SYNC;

var result = await FeatureAbility.callAbility(action);
var ret = JSON.parse(result);
if (ret.code == 0) {
console.info('plus result is:' + JSON.stringify(ret.abilityResult));
} else {
console.error('plus error code:' + JSON.stringify(ret.code));
}
}
}

PA端(Ability方式)

這里我們還是以官方文檔的案例為參考,我們對官方案例進行一個步驟分解,以方便理解

??https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-fa-calls-pa-examples-0000000000618000??

1.導入相關ohos接口包

// ohos相關接口包
import ohos.aafwk.ability.Ability;
import ohos.aafwk.content.Intent;
import ohos.hiviewdfx.HiLog;
import ohos.hiviewdfx.HiLogLabel;
import ohos.rpc.IRemoteBroker;
import ohos.rpc.IRemoteObject;
import ohos.rpc.RemoteObject;
import ohos.rpc.MessageParcel;
import ohos.rpc.MessageOption;
import ohos.utils.zson.ZSONObject;

import java.util.HashMap;
import java.util.Map;

2.創建一個繼承Ability的類并且重寫onConnect方法

創建完這個類之后,先重寫onConnect(Intent: intent)方法,并且在onConnect返回一個remote對象,供FA向PA發送消息。

public class ComputeServiceAbility extends Ability {
// 定義日志標簽
private static final HiLogLabel LABEL = new HiLogLabel(HiLog.LOG_APP, 0, "MY_TAG");

// FA在請求PA服務時會調用Ability.connectAbility連接PA,連接成功后,需要在onConnect返回一個remote對象,供FA向PA發送消息
@Override
protected IRemoteObject onConnect(Intent intent) {
super.onConnect(intent);
return remote.asObject();
}
}

3.繼承RemoteObject類重寫方法完成業務邏輯

private MyRemote remote = new MyRemote();  
class MyRemote extends RemoteObject implements IRemoteBroker {
private static final int SUCCESS = 0;
private static final int ERROR = 1;
private static final int PLUS = 1001;

MyRemote() {
super("MyService_MyRemote");
}

@Override
public boolean onRemoteRequest(int code, MessageParcel data, MessageParcel reply, MessageOption option) {
switch (code) {
case PLUS: {
String dataStr = data.readString();
RequestParam param = new RequestParam();
try {
param = ZSONObject.stringToClass(dataStr, RequestParam.class);
} catch (RuntimeException e) {
HiLog.error(LABEL, "convert failed.");
}

// 返回結果當前僅支持String,對于復雜結構可以序列化為ZSON字符串上報
Map<String, Object> result = new HashMap<String, Object>();
result.put("code", SUCCESS);
result.put("abilityResult", param.getFirstNum() + param.getSecondNum());
reply.writeString(ZSONObject.toZSONString(result));
break;
}
default: {
Map<String, Object> result = new HashMap<String, Object>();
result.put("abilityError", ERROR);
reply.writeString(ZSONObject.toZSONString(result));
return false;
}
}
return true;
}
@Override
public IRemoteObject asObject() {
return this;
}
}

完整示例代碼請查看官方文檔

??https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-fa-calls-pa-examples-0000000000618000??

??想了解更多內容,請訪問:??

??51CTO和華為官方合作共建的鴻蒙技術社區??

??https://harmonyos.51cto.com??

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2022-02-17 21:19:35

JSFA操作系統鴻蒙

2022-02-17 21:05:26

AbilityJS FAJava PA

2022-02-24 16:00:59

Ability鴻蒙JS

2021-11-15 15:11:14

鴻蒙HarmonyOS應用

2021-10-27 10:05:55

鴻蒙HarmonyOS應用

2021-09-10 15:13:41

鴻蒙HarmonyOS應用

2022-03-07 14:58:10

ArkUIJS FAJava

2022-07-11 16:26:37

eTS計算鴻蒙

2012-08-23 09:56:40

AJAX

2021-12-20 10:07:39

鴻蒙HarmonyOS應用

2012-06-19 13:25:15

Web

2009-12-22 15:14:33

WCF調用

2024-05-27 00:20:00

2024-08-13 08:25:16

C#外部程序方式

2025-06-06 00:00:00

JavaHTTPMCP

2010-01-21 11:23:58

C++函數調用

2023-10-30 09:35:01

注冊中心微服務

2010-03-04 11:07:21

Python解釋器

2010-01-20 14:25:56

函數調用

2010-03-04 09:27:34

調用Python腳本
點贊
收藏

51CTO技術棧公眾號

国产精品久久久久久久久久三级 | 国产高清精品一区| 亚洲一区二区在线| 亚洲污视频在线观看| 中文日本在线观看| 国产99久久久久久免费看农村| 国内精品国产三级国产在线专| 国产伦理片在线观看| 亚洲高清影院| 第一福利永久视频精品| 正在播放亚洲| 欧美老女人性开放| 国产精品资源网站| 国产精品极品美女粉嫩高清在线| 青草影院在线观看| 国产欧美日韩精品一区二区免费| 日韩一区二区在线看片| 久久久久久久少妇| 波多野结衣中文字幕久久| 欧美国产日产图区| 精品综合久久| 丰满少妇被猛烈进入| 奇米777欧美一区二区| 午夜精品在线视频| 亚洲最大的黄色网址| 欧美人妖在线| 亚洲国产精彩中文乱码av| 亚洲欧美国产中文| 日韩成人动漫| 性做久久久久久免费观看| 99久久久无码国产精品性色戒| 猫咪在线永久网站| 91玉足脚交白嫩脚丫在线播放| 欧美视频一区二区三区| 精品少妇人欧美激情在线观看| 国产麻豆精品一区| 久久国产欧美| 欧美一级视频在线观看| 精品在线视频观看| 亚洲欧美综合| 久久国产精品首页| 看免费黄色录像| 久久国产影院| 最新的欧美黄色| 超薄肉色丝袜一二三| 国产一区二区精品福利地址| 日韩精品亚洲视频| a天堂视频在线观看| 97视频一区| 精品国产免费久久| av av在线| 超碰成人97| 精品美女一区二区三区| 国产清纯白嫩初高中在线观看性色| 9999在线精品视频| 91精品国产综合久久久久久久 | 91亚洲国产成人精品一区二三| 成人免费视频网站入口| www五月婷婷| 国产a精品视频| 国产主播一区二区三区四区| 亚洲 国产 欧美 日韩| 91麻豆高清视频| 欧美在线播放一区二区| 成年人在线视频| 国产精品的网站| 色爽爽爽爽爽爽爽爽| 在线观看男女av免费网址| 一区二区三区日韩欧美| 2018中文字幕第一页| 美女高潮在线观看| 欧洲精品一区二区| 三年中文在线观看免费大全中国| 国产精品va视频| 精品国产免费一区二区三区香蕉| 国产乱了高清露脸对白| 国产不卡av一区二区| 色综合影院在线| 青青草手机在线观看| 最新日韩在线| 国产成人精品av在线| 一二三四区视频| 成人妖精视频yjsp地址| 欧美日韩另类综合| 国产鲁鲁视频在线观看特色| 一区二区三区视频在线看| 男女猛烈激情xx00免费视频| 亚州一区二区三区| 91精品国产欧美一区二区18| 又黄又爽的网站| 精品久久久久久久久久久下田| 久久精品中文字幕免费mv| xxxx 国产| 青椒成人免费视频| 国产精品视频一区二区三区经| 精品视频二区| 亚洲欧美一区二区三区久本道91| 可以看毛片的网址| av成人亚洲| 亚洲第一免费网站| sm捆绑调教视频| 国产欧美二区| 91精品国产91久久久久青草| 欧美一区二区三区少妇| 一区二区在线观看免费视频播放 | 毛片av一区二区| 国产欧美韩日| 国产理论在线观看| 在线一区二区三区| 2一3sex性hd| 一区二区影院| 国产精品久久久久久中文字| 天天操天天操天天干| 中文字幕一区二区视频| 国产一区二区三区精彩视频 | 欧美一区二区三区白人| 一色道久久88加勒比一| 亚洲夜间福利| 亚洲aa在线观看| www免费网站在线观看| 偷窥少妇高潮呻吟av久久免费| 亚洲自拍第三页| 欧美精品乱码| 欧美亚洲国产日本| 免费观看a视频| 亚洲免费视频中文字幕| 久久黄色片网站| 狠狠综合久久av一区二区蜜桃 | 中文字幕日韩有码| 久久国产视频一区| 成人午夜大片免费观看| 影音先锋成人资源网站| 日韩国产91| 中文在线不卡视频| 成年人视频免费| 2021中文字幕一区亚洲| 男人操女人逼免费视频| 澳门成人av| 久久久久久久999| wwwav在线播放| 亚洲永久免费av| 日本wwww色| 欧美欧美全黄| 国产精品久久国产精品| tube8在线hd| 亚洲成人a级网| 免费在线观看黄网站| 成人午夜免费av| 亚洲 欧美 日韩 国产综合 在线| 国产精品17p| 国语自产精品视频在线看抢先版图片| 黄色片一区二区三区| 亚洲va国产va欧美va观看| 天天躁日日躁狠狠躁免费麻豆| 亚洲夜间福利| 美日韩免费视频| 亚洲第一会所001| 日韩亚洲欧美成人| 国产精品国产三级国产普通话对白| 国产亚洲人成网站| 亚洲一级片网站| 亚洲91视频| 动漫美女被爆操久久久| 僵尸再翻生在线观看| 亚洲欧美资源在线| 中文字幕91爱爱| 自拍偷拍亚洲欧美日韩| 国产成人精品综合久久久久99| 好吊日精品视频| 久久免费看av| 欧美大陆国产| 欧美日韩国产成人高清视频| 神宫寺奈绪一区二区三区| 日韩欧美中文字幕在线观看 | 五月天婷婷视频| 一本到一区二区三区| 中文字幕乱码av| 懂色av一区二区夜夜嗨| 波多野结衣家庭教师在线| 欧美午夜精品一区二区三区电影| 成人亚洲激情网| ****av在线网毛片| 正在播放国产一区| 性生活黄色大片| 一本到不卡免费一区二区| www.xxxx日本| 91麻豆国产香蕉久久精品| 永久免费的av网站| 一区二区日本视频| 一区二区不卡在线观看| 噜噜噜狠狠夜夜躁精品仙踪林| 国产精品高精视频免费| 欧美黑人猛交| 一级做a爰片久久毛片美女图片| 国产高清在线观看视频| 337p粉嫩大胆噜噜噜噜噜91av| 日韩免费高清在线| 精品二区视频| 亚洲一区二区三区在线观看视频| 91蝌蚪精品视频| 国产精品视频成人| 美女搞黄视频在线观看| 久久久国产成人精品| 日韩精品系列| 日韩欧美一区二区视频| 中文永久免费观看| 精品日韩视频在线观看| 69av.com| 国产精品电影一区二区三区| 国产精品300页| 国产乱人伦偷精品视频免下载| 蜜臀久久99精品久久久酒店新书| 欧美激情一区| 色阁综合av| 免费一区二区| 精品日本一区二区三区| 最新精品在线| 91亚洲一区精品| 日本欧美在线| 国产国产精品人在线视| 黄在线观看免费网站ktv| 欧美激情视频在线免费观看 欧美视频免费一 | 久久国产精品72免费观看| 日韩精品一区二区三区久久| 激情久久综合| 青青视频免费在线观看| 久久社区一区| 一区二区三区四区五区精品| 国产欧美日韩精品高清二区综合区| 精品无人区一区二区三区| 亚洲高清在线一区| 亚洲自拍在线观看| 国产一区二区三区| 亚洲www在线观看| 国产精品xnxxcom| 91在线观看免费观看| 欧美性生活一级| 国产日韩欧美在线观看| 免费成人黄色网| 国产精品亚洲片夜色在线| 日韩在线短视频| 国产精品久久不能| 中文在线免费二区三区| 欧美激情亚洲一区| 51精品视频| 欧美一区在线直播| 网友自拍亚洲| 日本免费久久高清视频| 日韩电影免费观| 国产精品久久999| 欧洲精品久久久久毛片完整版| 国产欧美精品一区二区三区-老狼 国产欧美精品一区二区三区介绍 国产欧美精品一区二区 | 亚洲午夜私人影院| 欧美黄色免费看| 亚洲网友自拍偷拍| 波多野结衣国产| 色婷婷综合久久久| а中文在线天堂| 欧美人伦禁忌dvd放荡欲情| 一本一道人人妻人人妻αv| 欧美喷潮久久久xxxxx| 国产乱码精品一区二区三区精东| 欧美一卡二卡在线| 亚洲精品综合久久| 日韩成人性视频| 国产美女视频一区二区三区| 中文字幕国产精品| 大片免费在线观看| 久久99亚洲精品| 日韩精品极品| 国产精品欧美风情| 欧美精品影院| 免费在线成人av| 欧美岛国激情| 国产日本在线播放| 日韩黄色免费电影| 永久免费看片在线观看| 99久久免费视频.com| 国产精品一区二区亚洲| 一区二区在线观看免费视频播放| 日韩女优在线观看| 欧美无砖砖区免费| 亚洲经典一区二区三区| 国产丝袜高跟一区| 黄色在线免费| 2019国产精品自在线拍国产不卡| av一区在线| www 成人av com| 国产一区二区三区四区五区| 性做爰过程免费播放| 国产欧美大片| 日韩欧美中文在线视频| 久久久久久久久伊人| 波多野结衣亚洲一区二区| 精品久久久久久久久久久久久久| 在线观看免费中文字幕| 精品粉嫩aⅴ一区二区三区四区| 黄网在线免费| 欧美激情2020午夜免费观看| 日本精品在线中文字幕| 国产精品入口免费| 国产精品99一区二区三| 久久久免费视频网站| 国产一区二区美女| 免费看污片的网站| 亚欧色一区w666天堂| 99精品视频免费看| 国产亚洲欧美日韩美女| 91福利在线尤物| 国产欧美日韩免费| 伊甸园亚洲一区| av日韩一区二区三区| 久久精品国产精品亚洲综合| 久久中文字幕人妻| 亚洲国产精品一区二区尤物区| 亚洲熟妇av乱码在线观看| 亚洲欧美国产日韩中文字幕| 免费av不卡在线观看| 成人激情视频在线观看| 精品国产一区探花在线观看| 国产午夜福利在线播放| 国产成a人亚洲精品| 久久人妻无码aⅴ毛片a片app| 色噜噜狠狠色综合欧洲selulu| 男人的天堂a在线| 欧美精品在线免费观看| 日韩三级成人| 亚洲精品中文字幕乱码三区不卡| 亚洲精品美女91| 看全色黄大色黄女片18| 亚洲另类在线一区| 国产伦精品一区二区三区四区| 中文欧美日本在线资源| 99re久久| 亚洲精品在线免费| 免费的国产精品| 精品亚洲aⅴ无码一区二区三区| 黑人狂躁日本妞一区二区三区| 日韩在线视频免费| 久久久久久免费精品| 一区二区三区视频播放| 欧美中文字幕在线观看视频| 国产一区二区三区免费| 91高清免费看| 日韩一区二区影院| 免费在线观看的电影网站| dy888夜精品国产专区| 欧美日韩一区二区三区四区在线观看| 男人午夜视频在线观看| 亚洲免费资源在线播放| 亚洲国产精品成人久久蜜臀| 欧美激情精品久久久久久蜜臀| 福利电影一区| 国产精品后入内射日本在线观看| 久久午夜国产精品| 国产日韩久久久| 中文字幕一区二区三区电影| 青青伊人久久| www.亚洲一区二区| 国产成人免费视频一区| 日本免费观看视| 亚洲网址你懂得| 久久久加勒比| 日韩视频 中文字幕| 成人少妇影院yyyy| 日本一区二区三区精品| 尤物九九久久国产精品的分类| 国产精品诱惑| 日本人妻伦在线中文字幕| av在线综合网| 成人免费一区二区三区| 久久综合亚洲社区| 久久影视三级福利片| 亚洲黄色a v| 亚洲色图欧洲色图| 色婷婷中文字幕| 国产精品丝袜久久久久久高清| 亚洲91中文字幕无线码三区| 欧美性生交xxxxx| 色婷婷国产精品综合在线观看| 在线观看二区| 国产精品久久久久久久久久直播| 视频在线观看91| 日本黄色小说视频| 亚洲欧美精品在线| 成人影院网站ww555久久精品| 久久99中文字幕| 国产精品丝袜在线| 国产综合视频在线| 国产玖玖精品视频| 亚洲大胆视频| 二区三区四区视频| 亚洲国产天堂久久国产91| 国产欧美自拍| 日本日本19xxxⅹhd乱影响| 国产精品久久久久影院| 无码精品人妻一区二区| 成人精品视频久久久久| 香蕉久久夜色精品国产| 日本天堂中文字幕|