鸿蒙系统-手机-JS FA(Feature Ability)调用Java PA(Particle Ability)

官方文档:https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ui-js-fa-call-pa-0000001050435961#ZH-CN_TOPIC_0000001063148755__section170911161411

1.编写PA代码

PlayAbility.c
package com.example.phone.ability;import com.example.phone.param.SUMRequestParam;
import com.example.phone.utils.PlayMusicUtil;
import ohos.aafwk.ability.Ability;
import ohos.aafwk.content.Intent;
import ohos.app.Context;
import ohos.hiviewdfx.HiLog;
import ohos.hiviewdfx.HiLogLabel;
import ohos.rpc.*;
import ohos.utils.zson.ZSONObject;
import java.util.HashMap;
import java.util.Map;public class PlayAbility extends Ability {private static final String TAG = "PlayAbility";static final HiLogLabel label = new HiLogLabel(HiLog.LOG_APP, 1, "MY_TAG");private static final int ERROR = -1;private static final int SUCCESS = 0;private static final int PLUS = 1001;private PlayRemote remote;@Overrideprotected void onStart(Intent intent) {super.onStart(intent);}@Overrideprotected IRemoteObject onConnect(Intent intent) {super.onConnect(intent);Context c = getContext();remote = new PlayRemote();return remote.asObject();}class PlayRemote extends RemoteObject implements IRemoteBroker {public PlayRemote() {super("PlayRemote 666");}@Overridepublic boolean onRemoteRequest(int code, MessageParcel data, MessageParcel reply, MessageOption option) throws RemoteException {switch (code) {case PLUS: {String zsonStr = data.readString();SUMRequestParam param = ZSONObject.stringToClass(zsonStr, SUMRequestParam.class);// 返回结果仅支持可序列化的Object类型Map<String, Object> zsonResult = new HashMap<String, Object>();zsonResult.put("code", SUCCESS);zsonResult.put("abilityResult", param.getFirstNum() + param.getSecondNum());reply.writeString(ZSONObject.toZSONString(zsonResult));break;}default: {reply.writeString("service not defined");return false;}}return true;}@Overridepublic IRemoteObject asObject() {return this;}}
}

2.编写FA

index.js

// 下面的代码编译器报错不用管
const globalRef = Object.getPrototypeOf(global) || global
globalRef.regeneratorRuntime = require('@babel/runtime/regenerator')const ABILITY_TYPE_EXTERNAL = 0;
const ACTION_SYNC = 0;
const ACTION_ASYNC = 1;
const ACTION_MESSAGE_CODE_PLUS = 1001;export const playAbility = {sum: async function(that){var actionData = {};actionData.firstNum = 1024;actionData.secondNum = 2048;var action = {};action.bundleName = 'com.example.phone';action.abilityName = 'com.example.phone.ability.PlayAbility';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));that.title = 'plus result is:' + JSON.stringify(ret.abilityResult);} else {console.error('plus error code:' + JSON.stringify(ret.code));}}
}export default {data: {title: ""},onInit() {this.title = "我是大喵666";},play(){this.title = "我是大喵计算中";playAbility.sum(this);}
}

index.hml

<div class="container"><div><text class="title">{{ $t('strings.hello') }}{{title}}</text></div><div><text class="title" onclick="play">计算</text></div>
</div>

鸿蒙系统-手机-JS FA(Feature Ability)调用Java PA(Particle Ability)相关推荐

  1. (HarmonyOS)JS FA调用Java PA(一)Ability概念及Ability与Internal Ability调用方式

    JS FA调用Java PA(一)Ability概念及Ability与Internal Ability调用方式 引言 Ability FA-Page Ability PA-Service Abilit ...

  2. 华为否认今年将推出搭载鸿蒙系统手机;苹果或在 3 年内推出 5G 基带芯片;Node.js 12.12.0 发布 | 极客头条...

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

  3. 华为今年不会发布鸿蒙系统的手机,华为:今年不会推出鸿蒙系统手机 将坚守安卓生态...

    原标题:华为:今年不会推出鸿蒙系统手机 将坚守安卓生态 近日,华为高级副总裁Vincent Yang在接受媒体采访时表示:华为今年不会推出鸿蒙系统手机,除非谷歌彻底禁止华为使用安卓."华为希 ...

  4. 荣耀play4 pro怎么升级鸿蒙系统,华为鸿蒙系统手机型号有哪些

    华为鸿蒙系统支持的手机型号有很多,如果你想第一时间升级鸿蒙系统,需要申请内测后,才能够下载安装升级哦!不知道如何操作的小伙伴们,一起来看看趣丁网带来的华为鸿蒙os2.0系统怎么升级教程吧! 一.华为鸿 ...

  5. 鸿蒙系统笔记本价格,鸿蒙系统手机华为P50将明年3月发售,华为P40价格骤降至冰点...

    原标题:鸿蒙系统手机华为P50将明年3月发售,华为P40价格骤降至冰点 鸿蒙系统手机华为P50将明年3月发售,华为P40价格骤降至冰点! 每一代P系列产品都基于华为研发和业界合作伙伴的最前沿的能力,实 ...

  6. 鸿蒙系统手机9月11日,鸿蒙系统9月11日,将有望正式成为国际第三大手机操作生态系统...

    原标题:鸿蒙系统9月11日,将有望正式成为国际第三大手机操作生态系统 众所周知,当时华为鸿蒙系统还处于1.0版本的时候,这项技术就已经被运用到了荣耀智能屏上,目前该系统也已经过渡到了华为的手表上,经过 ...

  7. 鸿蒙系统-手机-HAP开发编译调试

    鸿蒙系统-手机-HAP开发编译调试 1.开发环境 环境搭建请看 https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ins ...

  8. 华为手机安卓系统可能停更,鸿蒙系统手机要来了

    根据外国科技媒体报道称,美国对华为的临时许可已于今年8月13日到期.现在美国政府并没有再次延长临时许可.有媒体认为,华为手机的Android系统或将停止更新或被直接断供. 由于无法获得谷歌移动服务的授 ...

  9. arduino安卓手机版_剥离安卓!华为鸿蒙系统手机版正式发布:这两大机型率先升级...

    国人期待两年的华为鸿蒙系统手机版今天终于正式发布了.其实在鸿蒙手机版发布之前官方已做足预告,不同于安卓和苹果iOS以手机自身为中心进行优化,华为鸿蒙系统手机版在小智看来更像是把手机变成一个互联万物的移 ...

最新文章

  1. C语言条件语句(就做个笔记,云储存一下)
  2. 【Fragment】管理机制
  3. 网络营销——浅析网站改版之后对网站展开新的网络营销有哪些影响?
  4. gcc 删除elf_ELF文件格式解析器 原理 + 代码
  5. oracle备份归档文件,oracle 如何不备份已经备份的归档
  6. android 复制字符串,Cocos2dx 复制文本到剪切板(Android 和 ios)
  7. 比较决策的收益(洛谷P2705题题解,Java语言描述)
  8. Qt creator5.7 OpenCV249之均值滤波(含源码下载)
  9. phpcmsV9留言板 - 提交后提示页UI自定义效果
  10. DataFrame列转json以及json转DataFrame列
  11. 使用docker compose 测试集群网络连接性
  12. linux桌面监控软件,Ubuntu安装Conky系统监控桌面插件
  13. python可爱的小猫动画_菜根谭小猫
  14. 贵州大学oj C++ 第五次 12.房产税费计算
  15. mysql slave 'system user' locked_Mysql的slave lags一例
  16. 群晖Synology DS918+使用笔记-基础篇
  17. 随机信号处理的一些归纳
  18. Netgear R6220刷潘多拉盒子后的配置,提高网速
  19. JavaScript实现炸金花
  20. 判断三点顺序(顺时针或者逆时针)(模板)

热门文章

  1. 软件设计师考试 | 第四章 操作系统知识 | 文件管理
  2. tp5中php正则怎么写,详解tp5中phpmailer的使用
  3. php mktime 时间不对_PHP 语言需要避免的 10 大误区
  4. SPH(光滑粒子流体动力学)流体模拟实现二:SPH算法(4)-算法实现2
  5. requests模块爬取糗事百科用xpath解析
  6. java获取语言_如何在java中获取语言环境对象?
  7. shader LOD快速生成具体是种怎样的技术?
  8. Python数据处理 PCA/ZCA 白化(UFLDL教程:Exercise:PCA_in_2DPCA_and_Whitening)
  9. Hyper Text Transfer Protocol(超文本传输协议)
  10. Java 使用GDAL 读写 shapefile