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开发 | 更多内容↓点击 | HarmonyOS与OpenHarmony技术 |
|---|---|---|
| 鸿蒙技术文档 | 开发知识更新库gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md在这。 | 或+mau123789学习,是v喔 |

获取当前内存中,跑转到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
发布评论请先 登录
相关推荐
热点推荐
知乎开源“智能预渲染框架” 几行代码实现鸿蒙应用页面“秒开”
,交互延迟等核心痛点,通过智能预测用户浏览目标进行提前渲染,只需几行代码即可显著提升复杂页面的加载性能,实现“页面秒开”的高效体验,为鸿蒙开发者带来
【HarmonyOS 5】鸿蒙页面和组件生命周期函数
【HarmonyOS 5】鸿蒙页面和组件生命周期函数 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融
harmony-utils之JSONUtil,JSON工具类
,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志、异常捕获、字符、字符串
harmony-utils之LocationUtil,定位相关工具类
实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、
鸿蒙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鸿蒙开发
Get这个秘籍,鸿蒙原生应用页面滑动丝滑无比
在鸿蒙应用开发中,部分应用页面在滑动时会出现白块或白屏的问题,不仅困扰开发者,还直接影响用户体验。针对这一痛点,华为近期分别推出了针对鸿蒙原
发表于 03-06 14:41
【「极速探索HarmonyOS NEXT 」阅读体验】 初印象:一本纯血鸿蒙应用开发入门的好书
非常有幸的于近日收到了电子发烧友寄来的《 极速探索HarmonyOS NEXT **** 纯血鸿蒙应用开发实践》这本由清华大学出版社出版的一本纯血鸿蒙应用开发学习的一本好书。
书籍一共
发表于 03-04 12:41
鸿蒙原生页面高性能解决方案上线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

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