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

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

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

三方库可能会在自己的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
相关问题
如何跳转到共享指定页面
748浏览 • 1回复 待解决
har跳转har自己页面
583浏览 • 1回复 待解决
HAR里子窗口无法加载页面
292浏览 • 1回复 待解决
外部调用har方法,如何跳转页面
788浏览 • 1回复 待解决
从HAP,如何区分是HAR和HSP
915浏览 • 1回复 待解决
ohpm publish 推送har大小限制
278浏览 • 1回复 待解决
harworker如何在entry内使用
754浏览 • 1回复 待解决
请问哪里可以下载组件harChatLib.har
3454浏览 • 1回复 待解决
自定义弹窗变量如何传递给页面
1134浏览 • 1回复 待解决
如何写har编译脚本?
485浏览 • 1回复 待解决
hvigor自定义任务中使用npm
337浏览 • 1回复 待解决
私仓上传har具体规范是什么
457浏览 • 1回复 待解决
如何跳转到设置应用详情页面
919浏览 • 1回复 待解决
IDE无法识别在自定义方法检测
638浏览 • 1回复 待解决
hsp和har互相转换方案
618浏览 • 1回复 待解决