0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙OS开发实例:【工具类封装-页面路由】

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-03-28 16:16 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

import common from '@ohos.app.ability.common';
import router from '@ohos.router'

封装app内的页面之间跳转、app与app之间的跳转工具类

【使用要求】

DevEco Studio 3.1.1 Release
api 9

【使用示例】

import MyRouterUtil from '../common/utils/MyRouterUtil'
MyRouterUtil.openBrowser('https://www.baidu.com')


export default class MyRouterUtil {
  //日志过滤器
  static readonly LOG: string = "====MyRouterUtil"
  /**
   * 鸿蒙APP跳转到手机浏览器并打开网页
   * @param url 打开网页后展示的url地址
   */
  public static async openBrowser(url: string) {
    try {
      let want = {
        "action": "ohos.want.action.viewData",
        "entities": ["entity.system.browsable"],
        "uri": url,
        "type": "text/plain"
      }
      let context = getContext(this) as common.UIAbilityContext;
      await context.startAbility(want)
      console.info(MyRouterUtil.LOG, 'openBrowser', url)
    } catch (error) {
      console.error(MyRouterUtil.LOG, 'openBrowser', `${error.code},url:${url}`)
    }
  }

返回上一页

public static backPage() {
    router.back()
    console.info(MyRouterUtil.LOG, 'backPage', '判断栈内页面数:', router.getLength())
  }

在鸿蒙APP内打开网页
常用来打开隐私声明、用户协议等

@param url

  public static async openWeb(url: string) {
    try {
      await router.pushUrl({
        url: 'pages/Web', //这个页面是我自己创建的,用于展示网页。里面可根据url的参数决定是否显示原生的标题栏。
        params: {
          launchWebview: url
        }
      }, router.RouterMode.Standard)
      console.info(MyRouterUtil.LOG, 'openWeb', url)
    } catch (e) {
      console.error(MyRouterUtil.LOG, 'openWeb', JSON.stringify(e), 'url:', url)
    }
  }
鸿蒙OS开发更多内容↓点击HarmonyOSOpenHarmony技术
鸿蒙技术文档开发知识更新库gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md在这。或+mau123789学习,是v喔

搜狗高速浏览器截图20240326151450.png

获取当前内存中,跑转到web页时保存的参数

public static getParamsByWeb() {
    let url = JSON.parse(JSON.stringify(router.getParams())).launchWebview
    console.info(MyRouterUtil.LOG, 'getParamsByWeb', url)
    return url
  }

跳转到首页,需要在首页Index中

public static async openIndex() {
   try {
     await router.pushUrl({
       url: 'pages/Index'
     }, router.RouterMode.Single)
     console.info(MyRouterUtil.LOG, 'openIndex', 'succ')
     router.clear()
   } catch (e) {
     console.error(MyRouterUtil.LOG, 'openIndex', JSON.stringify(e))
   }
 }

跳转到登录页

public static async openLogin() {
    try {
      await router.pushUrl({
        url: 'pages/Login'
      }, router.RouterMode.Standard)
      console.info(MyRouterUtil.LOG, 'openLogin', 'succ')
    } catch (e) {
      console.error(MyRouterUtil.LOG, 'openLogin', JSON.stringify(e))
    }
  }
}

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 封装
    +关注

    关注

    128

    文章

    9157

    浏览量

    147969
  • OpenHarmony
    +关注

    关注

    31

    文章

    3928

    浏览量

    20740
  • 鸿蒙OS
    +关注

    关注

    0

    文章

    193

    浏览量

    5328
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    知乎开源“智能预渲染框架” 几行代码实现鸿蒙应用页面“秒开”

    ,交互延迟等核心痛点,通过智能预测用户浏览目标进行提前渲染,只需几行代码即可显著提升复杂页面的加载性能,实现“页面秒开”的高效体验,为鸿蒙开发者带来
    的头像 发表于 08-29 14:32 479次阅读
    知乎开源“智能预渲染框架” 几行代码实现<b class='flag-5'>鸿蒙</b>应用<b class='flag-5'>页面</b>“秒开”

    【HarmonyOS 5】鸿蒙页面和组件生命周期函数

    【HarmonyOS 5】鸿蒙页面和组件生命周期函数 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融
    的头像 发表于 07-11 18:24 838次阅读

    harmony-utils之JSONUtil,JSON工具

    ,致力于助力开发者迅速构建鸿蒙应用。其封装工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志、异常捕获、字符、字符串
    的头像 发表于 07-03 18:21 371次阅读

    harmony-utils之LocationUtil,定位相关工具

    实用工具,致力于助力开发者迅速构建鸿蒙应用。其封装工具涵盖了APP、设备、屏幕、授权、通知、
    的头像 发表于 07-03 18:13 409次阅读

    harmony-utils之AppUtil,APP相关工具

    harmony-utils一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具,致力于助力开发者迅速构建鸿蒙应用。
    的头像 发表于 06-26 09:24 386次阅读
    harmony-utils之AppUtil,APP相关<b class='flag-5'>工具</b><b class='flag-5'>类</b>

    鸿蒙5开发宝藏案例分享---性能优化案例解析

    鸿蒙性能优化宝藏指南:实战工具与代码案例解析 大家好呀!今天在翻鸿蒙开发者文档时,意外挖到一个 性能优化宝藏库 ——原来官方早就提供了超多实用工具
    发表于 06-12 16:36

    鸿蒙5开发宝藏案例分享---一多开发实例(地图导航)

    案例!最近在肝鸿蒙项目时意外发现了这个地图导航的\"一多\"开发实例,简直像发现新大陆!这就带大家沉浸式体验这个超实用的开发模板~ ? 先划重点:这个案例完美演示了如何用一套代码搞定
    发表于 06-03 16:17

    鸿蒙5开发宝藏案例分享---一多开发实例(旅行订票)

    ? 鸿蒙开发宝藏大发现!一多开发实战案例解析(旅行订票篇) 大家好!今天在翻鸿蒙开发者文档时,意外发现了官方藏着一整片\"案例绿洲\"!尤其
    发表于 06-03 16:16

    鸿蒙5开发宝藏案例分享---一多开发实例(长视频)

    ;实例,看完直呼\"原来还能这样玩!\" 今天咱们就来好好扒一扒这些隐藏的宝藏,附带手把手的代码解析! ?** 长视频应用案例:一次开发征服四设备** 核心功能 :首页瀑布流
    发表于 06-03 15:58

    鸿蒙北向开发OpenHarmony5.0 DevEco Studio开发工具安装与配置

    本文介绍OpenHarmony5.0 DevEco Studio开发工具安装与配置,鸿蒙北向开发入门必备!由触觉智能Purple Pi OH鸿蒙开发
    的头像 发表于 03-28 18:05 1373次阅读
    <b class='flag-5'>鸿蒙</b>北向<b class='flag-5'>开发</b>OpenHarmony5.0 DevEco Studio<b class='flag-5'>开发工具</b>安装与配置

    Get这个秘籍,鸿蒙原生应用页面滑动丝滑无比

    鸿蒙应用开发中,部分应用页面在滑动时会出现白块或白屏的问题,不仅困扰开发者,还直接影响用户体验。针对这一痛点,华为近期分别推出了针对鸿蒙
    发表于 03-06 14:41

    【「极速探索HarmonyOS NEXT 」阅读体验】 初印象:一本纯血鸿蒙应用开发入门的好书

    非常有幸的于近日收到了电子发烧友寄来的《 极速探索HarmonyOS NEXT **** 纯血鸿蒙应用开发实践》这本由清华大学出版社出版的一本纯血鸿蒙应用开发学习的一本好书。 书籍一共
    发表于 03-04 12:41

    鸿蒙北向开发OpenHarmony4.1 DevEco Studio开发工具安装与配置

    OpenHarmony4.1 DevEco Studio开发工具安装与配置,鸿蒙北向开发入门必备!
    的头像 发表于 02-07 17:35 1389次阅读
    <b class='flag-5'>鸿蒙</b>北向<b class='flag-5'>开发</b>OpenHarmony4.1 DevEco Studio<b class='flag-5'>开发工具</b>安装与配置

    鸿蒙原生页面高性能解决方案上线OpenHarmony社区 助力打造高性能原生应用

    随着HarmonyOS NEXT的正式推出,鸿蒙原生应用开发热度高涨,数量激增。但在三方应用鸿蒙化进程中,性能问题频出。为此,HarmonyOS NEXT推出了一整套原生页面高性能解决
    发表于 01-02 18:00

    鸿蒙原生开发手记:04-一个完整元服务案例

    。 代码 查看 entry/src/main/etc/pages/ 目录,整个应用分为了四个页面。 其路由在 entry/src/main/resources/base/profile
    发表于 12-27 10:35