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

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

HarmonyOS
2024-05-22 22:30:12
2020浏览
收藏 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%') 
  } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.

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%') 
  } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.

har包中的接口方法Test.ets

这里仅展示路由跳转 
import router from '@ohos.router'; 
  
export class Test { 
  routerToAnother() { 
    router.pushNamedRoute({ 
      name: 'MainPage' 
    }) 
  } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

将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'
  • 1.
  • 2.
  • 3.
  • 4.

项目使用接口方法

使用前需要在项目中导入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%') 
  } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.

效果演示


分享
微博
QQ
微信
回复
2024-05-23 16:17:14


相关问题
如何跳转到共享指定页面
2855浏览 • 1回复 待解决
如何跳转到共享指定页面
904浏览 • 1回复 待解决
HarmonyOS HAR之间路由跳转
1214浏览 • 1回复 待解决
HarmonyOS Har静态内部页面无法跳转
1242浏览 • 1回复 待解决
HarmonyOS har内部路由跳转
379浏览 • 1回复 待解决
har跳转har自己页面
2443浏览 • 1回复 待解决
获取 har 相关信息
1175浏览 • 1回复 待解决
HAR里子窗口无法加载页面
1115浏览 • 1回复 待解决
恭喜您,今日已阅读两篇内容,特奖励+2声望, 快来领取吧。