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

    文章

    9398

    浏览量

    149251
  • OpenHarmony
    +关注

    关注

    33

    文章

    3990

    浏览量

    21493
  • 鸿蒙OS
    +关注

    关注

    0

    文章

    194

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    开源鸿蒙6.1 Release版本正式发布,在鸿OS 6.1率先完成升级适配!

    鸿蒙项目群A捐赠人,开鸿智谷积极参与OpenHarmony6.1Release版本的适配工作,并率先推出基于开源鸿蒙6.1Release的在鸿OS6.1Rele
    的头像 发表于 03-10 18:06 823次阅读
    开源<b class='flag-5'>鸿蒙</b>6.1 Release版本正式发布,在鸿<b class='flag-5'>OS</b> 6.1率先完成升级适配!

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

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

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

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

    harmony-utils之JSONUtil,JSON工具

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

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

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

    harmony-utils之LogUtil,日志工具

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

    harmony-utils之LRUCacheUtil,LRUCache缓存工具

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

    harmony-utils之RegexUtil,正则工具

    ,致力于助力开发者迅速构建鸿蒙应用。其封装工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、
    的头像 发表于 07-03 11:38 655次阅读

    harmony-utils之ToastUtil,吐司工具

    ,致力于助力开发者迅速构建鸿蒙应用。其封装工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、
    的头像 发表于 06-30 17:35 555次阅读

    harmony-utils之WindowUtil,窗口相关工具

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

    harmony-utils之AppUtil,APP相关工具

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

    harmony-utils之TempUtil,温度转换工具

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

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

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

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

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

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

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