HarmonyOS 应用开发之Stage模型绑定FA模型ServiceAbility

news/2024/7/21 10:59:25 标签: harmonyos, 华为, 鸿蒙开发, openharmony, 移动开发

本小节介绍Stage模型的两种应用组件如何绑定FA模型ServiceAbility组件。

UIAbility关联访问ServiceAbility

UIAbility关联访问ServiceAbility和UIAbility关联访问ServiceExtensionAbility的方式完全相同。

import common from '@ohos.app.ability.common';
import hilog from '@ohos.hilog';
import Logger from '../utils/Logger';
import promptAction from '@ohos.promptAction'
import Want from '@ohos.app.ability.Want';

const TAG: string = '[Page_StartFAModel]';
const DOMAIN_NUMBER: number = 0xFF00;

@Entry
@Component
struct Page_StartFAModel {
  private context = getContext(this) as common.UIAbilityContext;

  build() {
    // ...
    Button() {
      // ...
    }
    .onClick(() => {
      let want: Want = {
        bundleName: 'com.samples.famodelabilitydevelop',
        abilityName: 'com.samples.famodelabilitydevelop.ServiceAbility',
      }

      let options: common.ConnectOptions = {
        onConnect: (elementName, proxy) => {
          Logger.info('onConnect called.');
          promptAction.showToast({
            message: $r('app.string.ConnectFAServiceAbility')
          });
        },
        onDisconnect: (elementName) => {
          Logger.info('onDisconnect called.');
        },
        onFailed: (code) => {
          Logger.info('onFailed code is: ' + code);
        }
      };
      let connectionId = this.context.connectServiceExtensionAbility(want, options);
      hilog.info(DOMAIN_NUMBER, TAG, 'connectionId is ' + JSON.stringify(connectionId));
    })
  }
}

ExtensionAbility关联访问ServiceAbility

下面以ServiceExtensionAbility为例来说明ExtensionAbility关联访问ServiceAbility。ServiceExtensionAbility关联访问ServiceAbility和ServiceExtensionAbility关联访问ServiceExtensionAbility的方式完全相同。

import common from '@ohos.app.ability.common';
import hilog from '@ohos.hilog';
import Logger from '../utils/Logger';
import promptAction from '@ohos.promptAction'
import Want from '@ohos.app.ability.Want';

const TAG: string = '[Page_StartFAModel]';
const DOMAIN_NUMBER: number = 0xFF00;

@Entry
@Component
struct Page_StartFAModel {
  private context = getContext(this) as common.UIAbilityContext;

  build() {
    // ...
    Button() {
      // ...
    }
    .onClick(() => {
      let want: Want = {
        bundleName: 'com.samples.famodelabilitydevelop',
        abilityName: 'com.samples.famodelabilitydevelop.ServiceAbility',
      }

      let options: common.ConnectOptions = {
        onConnect: (elementName, proxy) => {
          Logger.info('onConnect called.');
          promptAction.showToast({
            message: $r('app.string.ConnectFAServiceAbility')
          });
        },
        onDisconnect: (elementName) => {
          Logger.info('onDisconnect called.');
        },
        onFailed: (code) => {
          Logger.info('onFailed code is: ' + code);
        }
      };
      let connectionId = this.context.connectServiceExtensionAbility(want, options);
      hilog.info(DOMAIN_NUMBER, TAG, 'connectionId is ' + JSON.stringify(connectionId));
    })
  }
}

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.
鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向


http://www.niftyadmin.cn/n/5460514.html

相关文章

【阅读笔记】《克拉克森的农场》

在农场里糟糕的一天,也好过在办公室里挺好的一天。——杰里米克拉克森 作者: [英]杰里米克拉克森 翻译:吴超 Kindle看的电子书 笔记 以第一人称记录疫情期间一个比较富有的人没事情干种田的事情。克拉克森之前是豪车的测评员,有一定的公众影…

常关型p-GaN栅AlGaN/GaN HEMT作为片上电容器的建模与分析

来源:Modeling and Analysis of Normally-OFF p-GaN Gate AlGaN/GaN HEMT as an ON-Chip Capacitor(TED 20年) 摘要 提出了一种精确基于物理的解析模型,用于描述p-GaN栅AlGaN/GaN高电子迁移率晶体管(HEMT&#xff09…

MySQL5.7源码分析--连接

一、连接协议支持 mysql支持4种通信协议:TCP/IP协议、Unix Socket协议、Share Memory协议、NT管道 windows支持三种连接方式:TCP/IP协议、Share Memory协议、NT管道 unix支持两种连接方式:TCP/IP协议、Unix Socket协议 协议介绍如下&…

python电商结合双轨制

最近又重新整合翻看以前的数据,图片,绘画,还有各种编程代码,python,leetcode,还有关于商业方面的一些见解,想起了大学时候和同学们并肩作战,熬夜编码的时光。还有大数据,八爪鱼爬虫。 下面是我的手稿电商打…

Electron 读取本地配置 增加缩放功能(ctrl+scroll)

最近,一个之前做的electron桌面应用,需要增加两个功能;第一是读取本地的配置文件,然后记载配置文件中的ip地址;第二就是增加缩放功能; 第一,配置本地文件 首先需要在vue工程根目录中&#xff0…

SQL语句学习+牛客基础39SQL

什么是SQL? SQL (Structured Query Language:结构化查询语言) 是用于管理关系数据库管理系统(RDBMS)。 SQL 的范围包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制。 SQL语法 数据库表 一个…

自定义类型(二)结构体位段,联合体,枚举

这周一时兴起,想写两篇文章来拿个卷吧,今天也是又来写一篇博客了,也是该结束自定义类型的学习与巩固了。 常常会回顾努力的自己,所以要给自己的努力留下足迹。 为今天努力的自己打个卡,留个痕迹吧 2024.03.30 小闭…

LeetCode 2908.元素和最小的山形三元组 I:贪心(两次遍历)——双O(n)复杂度

【LetMeFly】2908.元素和最小的山形三元组 I:贪心(两次遍历)——双O(n)复杂度 力扣题目链接:https://leetcode.cn/problems/minimum-sum-of-mountain-triplets-i/ 给你一个下标从 0 开始的整数数组 nums 。 如果下标三元组 (i,…