当前位置: 首页 > news >正文

鸿蒙服务卡片,点击事件,传值

用来显示或者提示一些基本信息,或进行一些基本操作,不能使用重逻辑

新建:1、在ets目录上右击;2、选择Service Widget;3、Dynamic Widget

其中Static Widget,只能做静态页面,不能做数据交互

Dynamic Widget可以做动态数据,及事件处理

在entry的model.json5中,

 "extensionAbilities": [{"name": "EntryFormAbility","srcEntry": "./ets/entryformability/EntryFormAbility.ets","label": "$string:EntryFormAbility_label","description": "$string:EntryFormAbility_desc","type": "form","metadata": [{"name": "ohos.extension.form","resource": "$profile:form_config"}]}]

就是的ability,在这个ability上,就是卡片

在EntryFormAbility中,最主要的方法:onAddForm(),就是做主要的逻辑处理

在Resources / base / profile / form_config.json中,就是卡片的配置

{"forms": [{"name": "widget","displayName": "$string:widget_display_name","description": "$string:widget_desc","src": "./ets/widget/pages/WidgetCard.ets","uiSyntax": "arkts","window": {"designWidth": 720,"autoDesignWidth": true},"colorMode": "auto","isDynamic": true,"isDefault": true,"updateEnabled": false,"scheduledUpdateTime": "10:30","updateDuration": 1,"defaultDimension": "2*2","supportDimensions": ["2*2","2*4"]}]
}

卡片可以选择2*2和2*4

作用:展示数据、唤起应用;不支持包、不支持网络请求;

在应用的model.json5中,加入权限 

    'requestPermissions': [{"name": 'ohos.permission.KEEP_BACKGROUND_RUNNING'}],
WidgetCard.ets
@Entry
@Component
struct WidgetCard {@State num: number = 0build() {Row() {Column() {Button(this.num + '++').onClick(() => {this.num++postCardAction(this, {action: 'call',abilityName: 'EntryAbility',params:{method:'updataNum',num:this.num}});})}.width('100%')}.height('100%').onClick(() => {postCardAction(this, {action: 'router', //跳转事件abilityName: 'EntryAbility',});})}
}

应用的界面:

import { authentication } from '@kit.AccountKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { promptAction } from '@kit.ArkUI';@Entry
@Component
struct Index {@State message: string = 'Hello World';@StorageLink('num')num:number=0build() {RelativeContainer() {Text(this.message+this.num)}.height('100%').width('100%')}}
EntryAbility.ets
import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { window } from '@kit.ArkUI';
import { rpc } from '@kit.IPCKit';class Params implements rpc.Parcelable{marshalling(dataOut: rpc.MessageSequence): boolean {return true}unmarshalling(dataIn: rpc.MessageSequence): boolean {return true}}class CaraParam{num:number=0
}export default class EntryAbility extends UIAbility {onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');this.callee.on('updataNum',(data)=>{let res=JSON.parse(data.readString())as CaraParamAppStorage.setOrCreate('num',res.num)return new Params()})}//销毁监听onDestroy(): void {this.callee.off('updataNum')hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy');}


http://www.mrgr.cn/news/7979.html

相关文章:

  • Django 后端架构开发:文件云存储,从本地存储到腾讯COS桶集成
  • JDK17 隐藏类 Hidden Classes 介绍
  • 关于武汉芯景科技有限公司的RS232通信接口芯片XJ3243EEUI开发指南(兼容MAX3243EEUI)
  • mac 虚拟机PD19运行E-prime实验遇到E-prime unable to set display mode:0*80004001问题解决
  • QT Mainwindow下指定控件的setMouseTracking(true)和mousemoveevent函数失效-问题解决
  • 通信协议学习:CAN总线协议
  • Resilience4J服务熔断隔离与限流
  • 音频导出后为什么效果变差了 FL Studio音频导出设置推荐
  • QUIC协议:网络通信的革命性突破
  • JavaScript 文件上传详解与实现
  • Linux学习记录(十三)----信号
  • 在rk设备上挂载windows上某个文件夹,通过SSH实时将打包的文件保存至windows上
  • 京准同步:北斗授时设备(北斗校时服务器)操作指南
  • MySQL 函数
  • 如何通过数据管理优化储能系统的运行效率?
  • Redis大显身手:实时用户活跃排行榜
  • 【Java】Java 设计模式之工厂模式与策略模式
  • mysql高可用之组复制 (MGR)
  • 小琳 AI 课堂:机器学习
  • 【QT代码控制Linux开发板】QT控制嵌入式Linux开发板运行shell脚本