ability之间的跳转

同模块下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()
        })

跨模块下ability之间的跳转

只需要改

moduleName:'ServiceCard',//模块名
abilityName:'ServiceCardAbility',//跳转的模块
Button('点击跳转=>服务卡片(跨模块)')
        .onClick(() => {
          promptAction.showToast({//弹窗
            // message:`显示${JSON.stringify(event)}`,
            message:`点击成功`
          })
          let wantInfo:Want={
            deviceId:'',//空 表示本应用
            bundleName:'com.example.localiondemo',//包名
            moduleName:'ServiceCard',//模块名
            abilityName:'ServiceCardAbility',//跳转的模块
            parameters:{
              info:'来自entryAbility'
            }
          }
          // 2、利用contentext startAbility 调起UIAbility
          this.context.startAbility(wantInfo)

        })

暂时完,下面会更页面之间的数据传递

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lucky me.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值