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文章
9398浏览量
149251 -
OpenHarmony
+关注
关注
33文章
3990浏览量
21493 -
鸿蒙OS
+关注
关注
0文章
194浏览量
5587
发布评论请先 登录
相关推荐
热点推荐
开源鸿蒙6.1 Release版本正式发布,在鸿OS 6.1率先完成升级适配!
鸿蒙项目群A类捐赠人,开鸿智谷积极参与OpenHarmony6.1Release版本的适配工作,并率先推出基于开源鸿蒙6.1Release的在鸿OS6.1Rele
知乎开源“智能预渲染框架” 几行代码实现鸿蒙应用页面“秒开”
,交互延迟等核心痛点,通过智能预测用户浏览目标进行提前渲染,只需几行代码即可显著提升复杂页面的加载性能,实现“页面秒开”的高效体验,为鸿蒙开发者带来
【HarmonyOS 5】鸿蒙页面和组件生命周期函数
【HarmonyOS 5】鸿蒙页面和组件生命周期函数 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融
harmony-utils之JSONUtil,JSON工具类
,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志、异常捕获、字符、字符串
harmony-utils之LocationUtil,定位相关工具类
实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、
harmony-utils之LogUtil,日志工具类
,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志,异常捕获、字符、字符串
harmony-utils之LRUCacheUtil,LRUCache缓存工具类
,借助众多实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授
harmony-utils之RegexUtil,正则工具类
类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、
harmony-utils之ToastUtil,吐司工具类
类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、
harmony-utils之WindowUtil,窗口相关工具类
实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、
harmony-utils之TempUtil,温度转换工具类
实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、
鸿蒙5开发宝藏案例分享---性能优化案例解析
鸿蒙性能优化宝藏指南:实战工具与代码案例解析
大家好呀!今天在翻鸿蒙开发者文档时,意外挖到一个 性能优化宝藏库 ——原来官方早就提供了超多实用工具
发表于 06-12 16:36
鸿蒙5开发宝藏案例分享---一多开发实例(旅行订票)
? 鸿蒙开发宝藏大发现!一多开发实战案例解析(旅行订票篇)
大家好!今天在翻鸿蒙开发者文档时,意外发现了官方藏着一整片\"案例绿洲\"!尤其
发表于 06-03 16:16
鸿蒙5开发宝藏案例分享---一多开发实例(长视频)
;实例,看完直呼\"原来还能这样玩!\" 今天咱们就来好好扒一扒这些隐藏的宝藏,附带手把手的代码解析!
?** 长视频应用案例:一次开发征服四类设备**
核心功能 :首页瀑布流
发表于 06-03 15:58
鸿蒙OS开发实例:【工具类封装-页面路由】
评论