通过har包中的接口方法跳转到har包中的自定义页面

通过har包中的接口方法跳转到har包中的自定义页面

HarmonyOS
2024-05-22 22:30:12
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
一意孤行的

三方库可能会在自己的har包中有一些自定义页面,需要通过自己提供的接口方法来调用展示,所以需要在接口方法中使用一些方法使页面跳转到自定义页面中。

使用的主要功能

  • 命名路由
  • router.pushNamedRoute()

核心代码

har包中的自定义页面MainPage.ets

自定义页面需要使用命名路由进行命名 
@Entry({routeName:"MainPage"}) 
@Component 
export struct MainPage { 
  @State message: string = 'Hello World'; 
  
  build() { 
    Row() { 
      Column() { 
        Text(this.message) 
          .fontSize(50) 
          .fontWeight(FontWeight.Bold) 
          .onClick(() => { 
            router.pushNamedRoute({ 
              name: 'SecondPage' 
            }) 
          }) 
      } 
      .width('100%') 
    } 
    .height('100%') 
  } 
}

har包中的自定义页面SecondPage.ets

@Entry({routeName:"SecondPage"}) 
@Component 
export struct SecondPage { 
  @State message: string = 'SecondPage'; 
  
  build() { 
    Row() { 
      Column() { 
        Text(this.message) 
          .fontSize(50) 
          .fontWeight(FontWeight.Bold) 
          .onClick(() => { 
            router.back() 
          }) 
      } 
      .width('100%') 
    } 
    .height('100%') 
  } 
}

har包中的接口方法Test.ets

这里仅展示路由跳转 
import router from '@ohos.router'; 
  
export class Test { 
  routerToAnother() { 
    router.pushNamedRoute({ 
      name: 'MainPage' 
    }) 
  } 
}

将har包中的页面和方法导出Index.ets

自定义页面需要导出后,其他模块才可以使用到 
export { MainPage } from './src/main/ets/components/mainpage/MainPage' 
export { Test } from './src/main/ets/components/mainpage/Test' 
export { SecondPage } from './src/main/ets/components/mainpage/SecondPage'

项目使用接口方法

使用前需要在项目中导入har包,这里不做说明 
import { Test } from 'library' 
import router from '@ohos.router'; 
  
@Entry 
@Component 
struct Index { 
  @State message: string = '使用接口方法'; 
  test: Test = new Test(); 
  
  build() { 
    Row() { 
      Column() { 
        Button(this.message) 
          .fontSize(50) 
          .fontWeight(FontWeight.Bold) 
          .onClick(() => { 
            this.test.routerToAnother() 
          }) 
        Button("使用命名路由") 
          .fontSize(50) 
          .fontWeight(FontWeight.Bold) 
          .onClick(() => { 
            router.pushNamedRoute({ 
              name: 'MainPage' 
            }) 
          }) 
      } 
      .width('100%') 
    } 
    .height('100%') 
  } 
}

效果演示


分享
微博
QQ
微信
回复
2024-05-23 16:17:14
相关问题
如何跳转到共享指定页面
718浏览 • 1回复 待解决
如何跳转到共享指定页面
2638浏览 • 1回复 待解决
HarmonyOS HAR之间路由跳转
960浏览 • 1回复 待解决
HarmonyOS Har静态内部页面无法跳转
954浏览 • 1回复 待解决
HarmonyOS har内部路由跳转
168浏览 • 1回复 待解决
har跳转har自己页面
2274浏览 • 1回复 待解决
外部调用har方法,如何跳转页面
2187浏览 • 1回复 待解决
HAR里子窗口无法加载页面
910浏览 • 1回复 待解决
获取 har 相关信息
859浏览 • 1回复 待解决