精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

99re热这里只有精品视频| 亚洲精品成人影院| 91福利精品第一导航| 亚洲午夜精品久久久中文影院av| 91精品在线视频观看| 国产一区二区三区自拍| 亚洲欧美成人网| 伊人网在线综合| hd国产人妖ts另类视频| 国产亚洲欧洲一区高清在线观看| 国产精品一区二区三区在线播放| 免费在线观看av网址| 国产精品一区二区三区av麻 | av电影一区二区| 国产精品中文字幕在线观看| 日韩在线观看第一页| 日韩精品免费一区二区在线观看 | 人人妻人人澡人人爽久久av| 日本强好片久久久久久aaa| 欧美日本在线视频中文字字幕| 精品夜夜澡人妻无码av| 日韩第一区第二区| 欧洲一区二区av| 欧美 日韩 亚洲 一区| 二区在线播放| 国产精品系列在线| 欧美激情专区| 高清一区二区三区四区| 久久99蜜桃精品| 欧美整片在线观看| 国产无套内射又大又猛又粗又爽| 91麻豆国产自产在线观看亚洲| 日韩精品一二三四区| 性生活一级大片| 免费成人毛片| 亚洲第一主播视频| 国产大尺度在线观看| 蜜桃视频在线观看视频| 93久久精品日日躁夜夜躁欧美| 91超碰在线免费观看| 在线不卡免费视频| 日韩电影一区二区三区四区| 欧美最猛性xxxx| 国产亚洲精品码| 欧美1区2区| 超薄丝袜一区二区| 久久人妻无码aⅴ毛片a片app| 神马电影久久| 亚洲欧美激情一区| 精品人妻无码一区二区三区| 动漫av一区| 欧美videos中文字幕| 亚洲欧美激情一区二区三区| 国产视频网站一区二区三区| 91精选在线观看| 国产福利精品一区二区三区| 国产一区二区三区四区五区3d| 欧美综合天天夜夜久久| 中文字幕国产传媒| 怡红院成人在线| 欧美午夜寂寞影院| 激情黄色小视频| 视频欧美精品| 91精品国产综合久久久久久久久久 | 国产福利视频一区| 波多野结衣电影在线播放| 米奇777在线欧美播放| 国产精品高精视频免费| 在线观看免费观看在线| 精品在线播放午夜| 亚洲精品日韩激情在线电影| www.色日本| 99国产精品视频免费观看| 蜜桃久久影院| 岛国视频免费在线观看| 国产精品久线在线观看| 日本一本草久p| 大香伊人中文字幕精品| 精品久久久久久国产91| 欧美少妇性生活视频| 成人一区视频| 日韩精品专区在线影院观看 | 在线播放一级片| 国产乱子轮精品视频| 国产精品区一区| 免费一级在线观看播放网址| 国产精品网站在线播放| 黑人巨茎大战欧美白妇| 国产在线88av| 欧美亚洲自拍偷拍| 91人妻一区二区| 台湾色综合娱乐中文网| 中文字幕在线成人| 久久精品一区二区三| 性伦欧美刺激片在线观看| 国产免费一区视频观看免费| 亚洲av无码一区二区三区性色| 久久久久久久久久久黄色| 伊人狠狠色丁香综合尤物| av蜜臀在线| 欧美视频第二页| 亚洲啪av永久无码精品放毛片| 久久av影视| 欧美激情在线一区| 樱花视频在线免费观看| 岛国一区二区在线观看| 日本视频一区在线观看| 欧美78videosex性欧美| 91高清视频免费看| 岛国精品资源网站| 亚洲深深色噜噜狠狠爱网站| 国产91在线播放精品91| 成人午夜福利视频| 欧美国产1区2区| 国产在线播放观看| 免费一区二区三区在线视频| 国产一区二区日韩| 91精品国产乱码在线观看| 国产尤物一区二区在线| 欧美亚洲免费高清在线观看| 日本无删减在线| 欧美日韩另类国产亚洲欧美一级| 男男做爰猛烈叫床爽爽小说 | 国产精品美女久久久久av爽| 久久99国内精品| 日韩av一区二区三区美女毛片| 国产在线xxx| 91精品啪在线观看国产60岁| 亚洲欧美va天堂人熟伦| 久久国产精品毛片| 国产日韩二区| 国产福利在线免费观看| 欧美一区二区三区在线视频| 国产7777777| 久久成人亚洲| 欧美日韩国产精品一区二区| xxx性欧美| 精品国精品国产尤物美女| 91嫩草丨国产丨精品| 蜜桃av一区二区| 日韩一区二区电影在线观看| 欧美xo影院| 精品亚洲永久免费精品| 国产成人在线视频观看| 99视频精品在线| 一卡二卡三卡视频| 国产一区二区三区亚洲| 久久久伊人日本| 色哟哟中文字幕| 性感美女极品91精品| 四虎精品一区二区| 亚洲乱亚洲高清| 国内精品**久久毛片app| 不卡的av影片| 日韩精品视频在线播放| 久久精品久久久久久久| 久久久高清一区二区三区| 麻豆传传媒久久久爱| 欧美日韩一二| 国产在线98福利播放视频| 伊人在线视频| 4438成人网| 九九热视频精品| youjizz久久| 草草久久久无码国产专区| 亚洲免费福利一区| 国产精品久久久久久搜索| 在线观看a视频| 91精品国产综合久久久久久久久久 | 中国丰满熟妇xxxx性| 国产精品白浆| 日本欧美一级片| 1769在线观看| 欧美一区二区成人6969| 欧美激情国产精品免费| 不卡一区中文字幕| 毛葺葺老太做受视频| 久久理论电影| 国产精品国产三级欧美二区| 日本在线啊啊| 最近的2019中文字幕免费一页| 国产精品一区二区三区在线免费观看| 一区二区三区在线免费观看| 亚洲中文字幕一区| 青椒成人免费视频| 国产高清不卡无码视频| 亚洲成a人片77777在线播放| 国产日韩视频在线观看| 国产三级伦理在线| 一区二区三区无码高清视频| www.激情五月.com| 欧美性生交xxxxx久久久| 久草福利资源在线| 99热精品一区二区| 99re精彩视频| 日韩一级在线| 一本二本三本亚洲码| 美女福利一区| 成人写真视频福利网| 蜜桃视频动漫在线播放| www.亚洲人.com| 天天操天天插天天射| 欧美久久久久久久久中文字幕| 国产亚洲欧美久久久久| 国产精品久久久久四虎| 亚洲图片综合网| 精品一区二区三区在线观看国产| 丰满少妇久久久| 久久精品久久久| 欧美日韩电影一区二区| 成人直播在线观看| 国产精品专区一| 欧美香蕉视频| 久久久久久久久久久久久久久久久久av| 欧美理论在线观看| 亚洲成人xxx| 国产又粗又猛又爽又黄视频 | 免费av中文字幕| 亚洲妇女屁股眼交7| 大地资源高清在线视频观看| 国产丝袜在线精品| 在线免费观看a级片| 国产乱理伦片在线观看夜一区| 福利在线一区二区三区| 激情婷婷亚洲| 波多野结衣激情| 青青草综合网| 欧美高清性xxxxhdvideosex| 懂色av一区二区| 91在线免费看片| 成人噜噜噜噜| 成人国产在线激情| h1515四虎成人| 日本高清视频一区| 中老年在线免费视频| 久久久免费精品视频| 日本性爱视频在线观看| 欧美成人中文字幕| 91亚洲天堂| 欧美精品情趣视频| 99热国产在线| 久久99精品久久久久久噜噜| free性欧美hd另类精品| 久久天天躁夜夜躁狠狠躁2022| yourporn在线观看视频| 国产亚洲视频中文字幕视频| 经典三级在线| 亚洲欧美中文日韩在线| 可以在线观看的黄色| 亚洲人成电影在线播放| 欧美精品少妇| 一个人看的www久久| 爱久久·www| 综合久久五月天| 男人的天堂在线视频免费观看 | 在线观看av一区二区| 久久久国产免费| 欧洲色大大久久| 亚洲无码精品国产| 3d动漫精品啪啪| av高清一区二区| 日韩视频永久免费| 后入内射欧美99二区视频| 亚洲国产97在线精品一区| 日本v片在线免费观看| 亚洲视频电影图片偷拍一区| 大片免费播放在线视频| 久久精品一本久久99精品| 污视频网站免费在线观看| 国外成人在线播放| 中文字幕在线视频久| 国产精品久久久久久中文字| 亚洲影视资源| 国产九色91| 亚洲丝袜啪啪| 亚洲欧洲国产日韩精品| 一区二区在线| 欧美黑人经典片免费观看| 久久国产精品毛片| 日本网站在线看| 成人午夜碰碰视频| 亚洲av无码国产精品麻豆天美| 国产精品毛片高清在线完整版| 日本a级片视频| 欧美日韩亚洲视频一区| 91好色先生tv| 精品国产自在久精品国产| 日本午夜在线视频| www国产91| 欧美激情网站| 成人妇女免费播放久久久| 精品欠久久久中文字幕加勒比| 欧美日韩精品久久久免费观看| 97精品在线| 亚洲 高清 成人 动漫| 精品一区二区三区在线播放 | 国偷自产av一区二区三区| 日本视频一区二区在线观看| 欧美午夜视频| 免费看a级黄色片| 国产成人av在线影院| 无码人妻精品一区二区中文| 亚洲激情欧美激情| 国产情侣免费视频| 精品盗摄一区二区三区| 看女生喷水的网站在线观看| 奇米一区二区三区四区久久| 精品国产亚洲一区二区三区| 欧美午夜免费| 国内视频精品| 亚洲精品免费一区亚洲精品免费精品一区| 成人sese在线| 男的操女的网站| 在线观看日韩毛片| 亚洲欧洲综合在线| 欧美激情xxxx性bbbb| 国产福利亚洲| 欧美一区二区三区四区五区六区| 好看的亚洲午夜视频在线| av亚洲天堂网| 国产亚洲成av人在线观看导航| 久久在线视频精品| 欧美一区二区三区日韩视频| 国产天堂在线| 欧美中文在线观看| 精品亚洲自拍| 国产精品久久久久9999爆乳| 国产在线播放一区三区四| 久久久久无码精品国产sm果冻| 精品国产乱码久久久久久婷婷| 亚洲国产精品二区| 美女性感视频久久久| 96sao精品免费视频观看| 亚洲v日韩v欧美v综合| 久久高清免费观看| www.色天使| 欧美性猛交xxxx乱大交| 午夜性色福利视频| 69视频在线免费观看| 成人爽a毛片免费啪啪红桃视频| 99久久久精品视频| 国产成人综合网| 欧美成人三级在线观看| 欧美一级电影网站| 欧美人与性动交α欧美精品济南到 | 日韩av网站电影| 17videosex性欧美| 国产精品大全| 亚洲黄色在线| 中文字幕天堂网| 红桃视频成人在线观看| 免费国产黄色片| 久久琪琪电影院| 久久精品色综合| www.浪潮av.com| 91丨九色丨蝌蚪富婆spa| 天堂在线免费观看视频| 亚洲午夜精品视频| 福利一区在线| 国产卡一卡二在线| 国产成+人+日韩+欧美+亚洲| 国产一级特黄毛片| 日韩精品亚洲视频| 四虎4545www国产精品| 亚洲午夜精品一区二区三区| 精品一区二区三区欧美| 日韩a级片在线观看| 欧美精品一区二区高清在线观看| а√在线中文在线新版| 久久影院理伦片| 日本va欧美va瓶| 91精品国产高清一区二区三蜜臀| 亚洲成人av片在线观看| 日本免费一区二区三区四区| 一区二区三区欧美成人| 国产老妇另类xxxxx| 日韩成人免费观看| 亚洲视频精品在线| 国产精一区二区| www.射射射| 国产精品污网站| 成人毛片视频免费看| 欧美主播福利视频| 99久久99久久精品国产片桃花| wwwww在线观看| 欧美午夜影院在线视频| 欧美天天影院| 国产成人成网站在线播放青青| 美女日韩在线中文字幕| 少妇高潮在线观看| 精品无人区太爽高潮在线播放| 日本一道高清亚洲日美韩| 女人被男人躁得好爽免费视频| 91丨porny丨户外露出| 91精品中文字幕| 91黑丝高跟在线| 五月天综合网站| 亚洲成人日韩在线| 91精品综合久久久久久| 国产精品一区二区av影院萌芽|