卡片生命周期管理

2023-05-16

卡片生命周期管理

创建ArkTS卡片,需实现FormExtensionAbility生命周期接口。

  1. 在EntryFormAbility.ts中,导入相关模块。

    import formInfo from '@ohos.app.form.formInfo';
    import formBindingData from '@ohos.app.form.formBindingData';
    import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';
    import formProvider from '@ohos.app.form.formProvider';
    
  2. 在EntryFormAbility.ts中,实现FormExtensionAbility生命周期接口,其中在onAddForm的入参want中可以通过FormParam取出卡片的相关信息。

    import formInfo from '@ohos.app.form.formInfo';
    import formBindingData from '@ohos.app.form.formBindingData';
    import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';
    import formProvider from '@ohos.app.form.formProvider';
    
    export default class EntryFormAbility extends FormExtensionAbility {
      onAddForm(want) {
        console.info('[EntryFormAbility] onAddForm');
        // 在入参want中可以取出卡片的唯一标识:formId
        let formId: string = want.parameters[formInfo.FormParam.IDENTITY_KEY];
        // 使用方创建卡片时触发,提供方需要返回卡片数据绑定类
        let obj = {
          'title': 'titleOnAddForm',
          'detail': 'detailOnAddForm'
        };
        let formData = formBindingData.createFormBindingData(obj);
        return formData;
      }
    
      onCastToNormalForm(formId) {
        // Called when the form provider is notified that a temporary form is successfully
        // converted to a normal form.
        // 使用方将临时卡片转换为常态卡片触发,提供方需要做相应的处理
        console.info(`[EntryFormAbility] onCastToNormalForm, formId: ${formId}`);
      }
    
      onUpdateForm(formId) {
        // 若卡片支持定时更新/定点更新/卡片使用方主动请求更新功能,则提供方需要重写该方法以支持数据更新
        console.info('[EntryFormAbility] onUpdateForm');
        let obj = {
          'title': 'titleOnUpdateForm',
          'detail': 'detailOnUpdateForm'
        };
        let formData = formBindingData.createFormBindingData(obj);
        formProvider.updateForm(formId, formData).catch((err) => {
          if (err) {
            // 异常分支打印
            console.error(`[EntryFormAbility] Failed to updateForm. Code: ${err.code}, message: ${err.message}`);
            return;
          }
        });
      }
    
      onChangeFormVisibility(newStatus) {
        // Called when the form provider receives form events from the system.
        // 需要配置formVisibleNotify为true,且为系统应用才会回调
        console.info('[EntryFormAbility] onChangeFormVisibility');
      }
    
      onFormEvent(formId, message) {
        // Called when a specified message event defined by the form provider is triggered.
        // 若卡片支持触发事件,则需要重写该方法并实现对事件的触发
        console.info('[EntryFormAbility] onFormEvent');
      }
    
      onRemoveForm(formId) {
        // Called to notify the form provider that a specified form has been destroyed.
        // 当对应的卡片删除时触发的回调,入参是被删除的卡片ID
        console.info('[EntryFormAbility] onRemoveForm');
      }
    
      onConfigurationUpdate(config) {
        // 当系统配置信息置更新时触发的回调
        console.info('[EntryFormAbility] configurationUpdate:' + JSON.stringify(config));
      }
    
      onAcquireFormState(want) {
        // Called to return a {@link FormState} object.
        // 卡片提供方接收查询卡片状态通知接口,默认返回卡片初始状态。
        return formInfo.FormState.READY;
      }
    }
    

icon-note.gif 说明: FormExtensionAbility进程不能常驻后台,即在卡片生命周期回调函数中无法处理长时间的任务,在生命周期调度完成后会继续存在5秒,如5秒内没有新的生命周期回调触发则进程自动退出。针对可能需要5秒以上才能完成的业务逻辑,建议拉起主应用进行处理,处理完成后使用updateForm通知卡片进行刷新

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

卡片生命周期管理 的相关文章

  • 升级sublime text4后激活及问题

    激活 1 打开浏览器进入网站https hexed it 2 打开sublime text4安装目录选择文件sublime text exe 3 搜索80 38 00更改为FE 00 90 第一个匹配到的 4 保存文件命名为sublime
  • Typecho博客支持Emoji表情功能设置

    Typecho 采用默认方式安装之后不支持 Emoji 表情 xff0c 是由于 MySQL 数据库编码的问题 只需要将默认的数据库编码从 utf 8 修改为 utf8mb4 即可 xff0c 不过 utf8mb4 编码在 PHP 5 5
  • 微信数据库最新的解密方式,使用C++代码解密微信加密数据库信息!

    原文转载于 https blog csdn net jiangwei0910410003 article details 79436956 一 知识回顾 最近有人找我弄微信数据库解密的东西 xff0c 其实这个现在网上都公开了 xff0c
  • 免费开源剪辑软件Shotcut推荐和使用教程

    shotcut是一个免费 开源 跨平台的视频编辑软件 xff0c 功能丰富强大 xff0c 能够满足绝大多数情况下对视频编辑的需求 xff0c 下面看看它如何使用吧 下载软件 去官网下载软件 xff0c 支持Linux MacOS和Wind
  • 百度在线解析站不限速下载

    百度网盘除了资源屏蔽分享链接以外 xff0c 主要还是不开会员下载龟速 xff0c 各种插件操作麻烦 当前市面上的百度网盘不限速下载基本都失效了 最近发现KinhDown在线解析倒是亲测可用 xff0c 配合IDM软件下载很快 xff01
  • 稿定设计怎么免费去水印

    稿定设计直接在设计上加了水印 xff0c 在不购买会员的情况下 xff0c 导出的都是带水印的 xff01 这水印对于我们这种偶尔使用 xff0c 而且不怎么商业的人来说 xff0c 可不是个事啊 xff01 今天就教大家没开会员导出高清图
  • 京东获取 Cookie 、pt_key、pt_pin教程

    1 浏览器安装插件 xff1a Cookie Editor 2 打开 m jd com 按下 F12 xff0c 按箭头更换手机 UA 3 用手机号登录 xff0c 登录之后在右上角扩展中打开刚添加的插件 xff0c 搜索复制这两个参数 4
  • 免费开发者资源

    这是为开发人员提供免费套餐的软件 xff08 SaaS PaaS IaaS 等 xff09 和其他产品的列表 注意 xff1a 此列表仅适用于即服务产品 xff0c 不适用于自托管软件 要使一项服务符合条件 xff0c 它必须提供免费套餐
  • github国内镜像下载地址

    github国内镜像下载地址 git clone https github com xxxxx xxxxxxx git 改为 git clone https github com cnpmjs org xxxxx xxxxxxx git 或
  • sublime text4 license

    sublime text4 license sublime text 4 license sublime text 4 license 本着独乐乐不如众乐乐的原则 xff1a lt pre class 61 34 md fences md
  • Anaconda 控制台输入命令出现‘拒绝访问‘解决方案.

    控制台输入命令出现 39 拒绝访问 39 解决方案 问题描述解决方案 问题描述 我们安装完成Anaconda后希望控制和添加一些环境 通常我们可以使用conda install XXX 命令来进行 但有些却不能很好的安装 当我们使用pip
  • (一)ProxmoxVE 初识

    前不久 xff0c 因项目需要接触了ProxmoxVE虚拟化技术 xff0c 在此针对重点以及技术选型进行一个简单的理论层面总结 xff1a ProxmoxVE基本特点 xff1a 1 ProxmoxVE虚拟机是使用kvm xff0c 容器
  • 传输网基础知识

    光传输的发展史 PDH SDH MSTP PTN OTN PDH xff1a Plesiochronous Digital Hierarchy xff0c 准同步数字系列 SDH xff08 Synchronous Digital Hier
  • PyCharm配置SFTP远程调试Django应用

    背景 之前一直从事Java方面的应用开发 xff0c 由于组里Python方向人手紧缺 xff0c 转而接触了几月Python xff0c 进行Django应用的学习和开发 对于用惯了Eclipse如此强大的IDE xff0c Python
  • 萌新PC网络故障如何排除障碍

    1 首先是排除接触故障 xff0c 即确保你的网线是可以正常使用的 然后禁用网卡后再启用 xff0c 排除偶然故障 打开网络和共享中心窗口 xff0c 单击窗口左上侧 更改适配器设置 右击其中的 本地连接 或 无线网络连接 xff0c 单击
  • 51单片机定时器的计数初值

    设定时时间为 5ms xff08 即5000us xff09 xff0c 定时器计数初值为 X xff0c 晶振频率为11 0592MHz xff0c 又 xff0c 定时时间 61 xff08 2 16 X xff09 12 晶振频率 x
  • mybatis-plus分页踩坑

    踩坑情况 引入的mybatis plus框架 用他的IPage分页接口去查询的时候发现接收到的数据并没有按照预料的去分页 也没执行count数量的sql 分析原因 后来去官网找发现是需要有一个分页插件的配置 代码如下 span class
  • Visual Studio 报错:error LNK2019: 无法解析的外部符号

    遇到的完整报错是这样的 xff1a error LNK2019 无法解析的外部符号 34 public thiscall Person Person void 34 0Person 64 64 QAE 64 XZ xff0c 函数 34 p
  • QT基础:QButtonGroup 按钮组的简单演示

    QButtonGroup 是一个按钮组 xff0c 就是将控件进行组合或分组的一个容器 xff0c 但是它并不在设计师里面可以直接拉出来用 在使用 QButtonGroup 的时候需要引入一下 include lt QButtonGroup
  • QT基础:遍历QListWidget,及QListWidget简单演示,适合初学者食用

    QListWidget 是一个列表框 xff0c 关于它的详细介绍可以参考 xff1a Qt QListWidget详解 初学者如果只是想在短时间内了解 QListWidget 的话 xff0c 可以参考这里 1 打开QT xff0c 创建

随机推荐

  • 查看虚拟机操作系统版本

    看虚拟机操作系统版本 xff0c 可以按照以下步骤进行 xff1a 打开虚拟机并登录到操作系统 打开终端 xff0c 输入以下命令 xff1a lsb release a 这个命令会显示操作系统的版本信息 xff0c 包括发行版名称 版本号
  • 汇编语言及其常用指令 3分钟急速了解

    第一部分 xff1a 汇编语言简介 当今计算机科学的领域中 xff0c 汇编语言是一门非常重要的编程语言 汇编语言是一种低级别的语言 xff0c 它直接操作计算机的硬件 xff0c 因此它比高级编程语言更加快速和高效 在本篇文章中 xff0
  • QT Creator实现导出某数据库的某表格,导出的时候将表头写成中文

    具体实现功能 xff1a 实现将某数据库内的某表格 xff0c 导出为execl可以打开的表格文件 xff0c 一般后缀为 xls xff0c 我这里是在Ubuntu环境下演示的 xff0c Windows环境应该也OK 要实现这个功能 x
  • 文献笔记|知识追踪|GKT|Graph-based Knowledge Tracing: Modeling Student Proficiency Using Graph Neural Network

    文章目录 Graph based Knowledge Tracing Modeling Student Proficiency Using Graph Neural Network研究对象面临的问题难点作者的方法FrameworkGKT问题
  • gRPC, Thrift和Dubbo等3种RPC框架的比较

    gRPC是Google开源的一款RPC框架 xff08 Go版本的实现 xff09 xff0c 以protobuf作为IDL xff0c 通过protoc来编译框架代码 gRPC的Java实现的底层网络库是基于Netty开发而来 xff0c
  • 搭建GitLab服务器

    下载 1 点击下载GitLab的rpm文件 2 或者命令下载 xff08 比较慢 xff0c 建议使用第一种方法直接下载 xff09 span class token function wget span https link zhihu
  • 求出a、b、c、d、e,满足ab-cd+e=1方程

    编写一个实验程序 xff0c 求出a b c d e xff0c 满足ab cd 43 e 61 1方程 xff0c 其中所有变量的取值为1 5并且均不相同 分析 xff1a 采用回溯法 xff0c 以找到变量的个数为终结条件 xff0c
  • idea插件 spring-assistant-@valuetoyml,快速定位到yml配置文件

    这里写自定义目录标题 idea插件 spring assistant 64 valuetoyml xff0c 快速定位到yml配置文件 安装 xff0c 在idea的插件市场直接搜索valuetoyml 自己在插件市场下载安装 插件详情 a
  • CA私有证书中心

    CA服务端 安装CA认证软件包中心 linux默认安装了 xff1a span class token function rpm span qf span class token variable span class token vari
  • MarkDown-IT插件使用

    目的 使后端返回数据库返回内容 xff0c 呈现到前端页面时 xff0c 展示它响应的MarkDown语法 实现机制 后端数据库直接存入Markdown语法 xff0c sql数据库字段数据类型建议采用LongText xff0c 后端传输
  • [Rust GUI]fltk-rs的helloworld

    1 安装VSCode 下载安装VSCode 安装VSCode扩展 rust analyzer或rust analyzer CN 2 安装Microsoft C 43 43 生成工具 访问微软官网下载生成工具 xff0c 勾选使用 C 43
  • OpenHarmony/HarmonyOS通用事件

    通用事件 点击事件 组件被点击时触发的事件 事件 onClick event nbsp event nbsp ClickEvent nbsp gt nbsp void 点击动作触发该回调 event返回值见ClickEvent对象说明 Cl
  • 通用信息整理

    通用事件 点击事件 触摸事件 挂载卸载事件 拖拽事件 按键事件 焦点事件
  • OpenHarmony/HarmonyOS文本通用属性

    文本通用属性 作者 坚果 团队 坚果组织 公众号 大前端之旅 润开鸿技术专家 华为HDE InfoQ签约作者 OpenHarmony布道师 擅长HarmonyOS应用开发 熟悉服务卡片开发 在 战码先锋 活动中作为大队长 累计培养三个小队长
  • OpenHarmony/HarmonyOS基础组件之XComponent

    基础组件之XComponent 作者 坚果 团队 坚果派 公众号 大前端之旅 润开鸿技术专家 华为HDE InfoQ签约作者 OpenHarmony布道师 擅长HarmonyOS应用开发 熟悉服务卡片开发 在 战码先锋 活动中作为大队长 累
  • OpenHarmony3.2release抢先体验

    OpenHarmony3 2release抢先体验 作者 坚果 团队 坚果派 公众号 大前端之旅 润开鸿技术专家 华为HDE InfoQ签约作者 OpenHarmony布道师 擅长HarmonyOS应用开发 熟悉服务卡片开发 在 战码先锋
  • OpenHarmony历史工程迁移

    OpenHarmony历史工程迁移 作者 坚果 团队 坚果派 公众号 大前端之旅 润开鸿技术专家 华为HDE InfoQ签约作者 OpenHarmony布道师 擅长HarmonyOS应用开发 熟悉服务卡片开发 在 战码先锋 活动中作为大队长
  • OpenHarmony应用沙箱路径和真实物理路径对应关系

    应用沙箱路径和调试进程视角下的真实物理路径 作者 坚果 团队 坚果派 公众号 大前端之旅 润开鸿技术专家 华为HDE InfoQ签约作者 OpenHarmony布道师 擅长HarmonyOS应用开发 熟悉服务卡片开发 在 战码先锋 活动中作
  • 创建ArkTS卡片

    创建ArkTS卡片 作者 xff1a 坚果 团队 xff1a 坚果派 公众号 xff1a 大前端之旅 润开鸿 技术专家 xff0c 华为HDE xff0c InfoQ签约作者 xff0c OpenHarmony布道师 xff0c 擅长Har
  • 卡片生命周期管理

    卡片生命周期管理 创建ArkTS卡片 xff0c 需实现FormExtensionAbility生命周期接口 在EntryFormAbility ts中 xff0c 导入相关模块 span class token keyword impor