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

鸿蒙卡片传值app到卡片

WidgetCard.ets
@Entry
@Component
struct WidgetCard {@State num: number = 0@LocalStorageProp('formId')@Watch('updataFormId')formId:string=''updataFormId(){// 卡片向app传参postCardAction(this, {action: 'call',abilityName: 'EntryAbility',params:{method:'updataFormId',num:this.formId}});}build() {Row() {Column() {Text('ID:'+this.formId)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',});})}
}

获取卡片id

在卡片的entryability中:EntryFormAbility

export default class EntryFormAbility extends FormExtensionAbility {onAddForm(want: Want) {// Called to return a FormBindingData object.let formData = '';return formBindingData.createFormBindingData({// form idformId:want.parameters!['ohos.extra.param.key.form_identity']as string});}

在app的entryability中:


class Params implements rpc.Parcelable{marshalling(dataOut: rpc.MessageSequence): boolean {return true}unmarshalling(dataIn: rpc.MessageSequence): boolean {return true}}class CaraParam{num:number=0formId:string=''
}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()})// 卡片创建时,调用了updataFormId,此时这里就会被触发,然后app将值传过去this.callee.on('updataFormId',(data)=>{let res=JSON.parse(data.readString())as CaraParam// AppStorage.setOrCreate('num',res.formId)// 数据可以写到首选项中存储// 把最新的数据推过去formProvider.updateForm(res.formId,formBindingData.createFormBindingData({num:AppStorage.get('num')}))return new Params()})}


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

相关文章:

  • 具有手势识别的动捕设备——mHand Pro VR数据手套
  • RISC-V vector(1) --- vector的引入与register说明
  • 2024中国AI Agent行业研究报告(PPT 可编辑)+2024中国AI Agent市场研究报告
  • FreeRTOS 快速入门(八)之任务通知
  • easypoi模板导出word并且合并行
  • 数据结构与算法的实现与优化
  • linux df -h时没有查到root盘,root文件夹带着锁或者叉号的解决办法
  • 进阶-7.管理工具
  • QChart绘制折线图
  • 【C++】函数模板特化:深度解析与应用场景
  • 【设计模式】模块模式和桥接模式
  • Android笔试面试题AI答之Kotlin(18)
  • postgresql 使用explain 进行SQL分析
  • ios白苹果修复办法有哪些?
  • 【微服务】springboot整合对象映射工具MapStruct使用详解
  • nginx做代理 转发前端请求到后端
  • 698. 划分为k个相等的子集
  • java日常管理
  • 如何使用 vue2+element-ui 处理复杂表单,避免单文件过大的问题
  • Android14 以太网共享功能 相关代码简介