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

同模块下的ability之间的跳转

1、首先创建一个新的ability

在这里插入图片描述
创建成功后在ability中标识一下
知道他是那个页面
在这里插入图片描述

2、在首页ability中来写跳转的其他ability

一共分两步

 // 1、准备一个want作为UIAbility的启动参数
  // 2、利用上下文对象context,调用startAbility传入want启动

2.1、导入所需要的包

import { promptAction } from '@kit.ArkUI';
import { common, UIAbility, Want } from '@kit.AbilityKit';

2.2、写一个want作为UIAbility的启动参数

Button('点击跳转')
        .onClick(() => {
          promptAction.showToast({//弹窗
            // message:`显示${JSON.stringify(event)}`,
            message:`点击成功`
          })
          let wantInfo:Want={
            deviceId:'',//空 表示本应用
            bundleName:'com.example.localiondemo',//包名
            moduleName:'entry',//模块名
            abilityName:'TwoAbility',//跳转的模块
            parameters:{
              info:'来自entryAbility'
            }
          }
   
      })

2.3、利用上下文对象context,调用startAbility传入want启动

2.3.1先获取上下文
//获取上下文对象
context=getContext(this) as common.UIAbilityContext
2.3.2利用context startAbility 调起UIAbility
 // 2、利用contentext startAbility 调起UIAbility
this.context.startAbility(wantInfo)
2.3.3首页ability完整代码
import { productViewManager } from '@kit.StoreKit';
import { promptAction } from '@kit.ArkUI';
import { common, UIAbility, Want } from '@kit.AbilityKit';

@Entry
@Component
struct AbilityPage {
  @State message: string = 'AbilityPageHelloWorld首页';
  //从一个ability唤起另外一个ability(同模块)
  // 1、准备一个want作为UIAbility的启动参数
  // 2、利用上下文对象context,调用startAbility传入want启动

  //获取上下文对象
  context=getContext(this) as common.UIAbilityContext

  build() {
    Column() {
      Text(this.message)
        .id('AbilityPageHelloWorld')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
      Button('点击跳转')
        .onClick(() => {
          promptAction.showToast({//弹窗
            // message:`显示${JSON.stringify(event)}`,
            message:`点击成功`
          })
          let wantInfo:Want={
            deviceId:'',//空 表示本应用
            bundleName:'com.example.localiondemo',//包名
            moduleName:'entry',//模块名
            abilityName:'TwoAbility',//跳转的模块
            parameters:{
              info:'来自entryAbility'
            }
          }
          // 2、利用contentext startAbility 调起UIAbility
          this.context.startAbility(wantInfo)

      })
    }
    .height('100%')
    .width('100%')
  }
}

3、跳转成功到ability2后;ability2返回首页

在ability2页面写

Button('点击返回')
        .onClick(()=>{
          router.back()
        })

完工


http://www.kler.cn/a/281318.html

相关文章:

  • HTML5 浏览器支持
  • android gradle特别慢
  • 计算机网络常见面试题总结
  • 面经:什么是Transformer位置编码?
  • 【算法题】机试指南-数据结构进阶篇
  • C++/Qt 多媒体(续二)
  • Vue——认识day02
  • Docker部署独立版Milvus向量数据库
  • C# 实现傅里叶变化(DFT)
  • Marked: 一款高效、轻量级且全功能的Markdown解析器
  • 详细分析Ubuntu中的ufw基本知识
  • Linux(云服)安装go
  • CSS3动画——飞行的小精灵
  • kubenetes--资源调度
  • 【Redis】渐进式遍历和数据库管理
  • 主成分分析PCA通用代码(输出world报告)
  • notepad++正则表达式,怎样搜索同时满足两个条件的字符串?
  • 做项目过程中问题小汇总 | vue3 elementplus js
  • nginx反向代理,负载均衡,动静分离
  • 基于yolov8的人员溺水检测告警监控系统python源码+onnx模型+评估指标曲线+精美GUI界面