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))
}
}
}
审核编辑 黄宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
封装
+关注
关注
123文章
7278浏览量
141096 -
OpenHarmony
+关注
关注
23文章
3285浏览量
15159 -
鸿蒙OS
+关注
关注
0文章
129浏览量
4279
发布评论请先 登录
相关推荐
鸿蒙OS开发实例:【HarmonyHttpClient】网络框架
鸿蒙上使用的Http网络框架,里面包含纯Java实现的HttpNet,类似okhttp使用,支持同步和异步两种请求方式;还有鸿蒙版retrofit,和Android版Retrofit相似的使用,解放双手般优雅使用注解、自动解析json
鸿蒙OS开发实例:【应用状态变量共享】
平时在开发的过程中,我们会在应用中共享数据,在不同的页面间共享信息。虽然常用的共享信息,也可以通过不同页面中组件间信息共享的方式,但有时使用应用级别的状态管理会让开发工作变得简单。
鸿蒙OS开发实例:【页面传值跳转】
本篇主要介绍如何在HarmonyOS中,在页面跳转之间如何传值
HarmonyOS 的页面指的是带有@Entry装饰器的文件,其不能独自存在,必须依赖UIAbility这样的组件容器
如下是官方关于State模型开发模式
鸿蒙OS开发实例:【工具类封装-emitter组件间通信】
`MyEmitterUtil` 是一个针对 HarmonyOS 的事件驱动编程封装类,主要用于组件间的通信和数据传递。
鸿蒙实战项目开发:【短信服务】
||---SmsModel.ets// 封装短信类
具体实现
发送短信功能在SmsModel中 :
/*
* Copyright (c) 2022 Huawei Device Co., Ltd.
发表于 03-03 21:29
鸿蒙开发-应用程序框架UIAbility的使用
Index页面的基础上,新建一个页面,例如命名为Second.ets。 页面间的导航可以通过页面路由router模块来实现。
发表于 01-17 16:36
免费学习鸿蒙(HarmonyOS)开发,一些地址分享
国内一流高校。通过鸿蒙班的设立,高校可以为学生提供专业的鸿蒙OS学习环境和丰富的实践机会,培养出更多的鸿蒙开发人才,为
发表于 01-12 20:48
【开源三方库】Arouter:一款轻量、高效的页面路由工具
OpenHarmony(以下简称“OpenHarmony”)的轻量高效的页面路由工具,相比原生的路由方案,Arouter更有优势。传统的路由
鸿蒙原生应用开发-关于页面接口router返回问题与解决思路
、问题
在测试demo登录的时候,登录成功后返回到主页面,然后进入到登录页点击退出,结果退出后实际还是登录状态,后台打印信息也没有出现报错。一时间纠结了。
四、解决
最后,还是发现,原来是页面路由跳转
发表于 11-15 10:11
华为鸿蒙系统
华为鸿蒙系统(HUAWEI Harmony OS),是华为公司在2019年8月9日于东莞举行的华为开发者大会(HDC.2019)上正式发布的操作系统。
华为鸿蒙系统是一款全新的面向全场
发表于 11-02 19:39
鸿蒙 OS 应用开发初体验
的操作系统平台和开发框架。HarmonyOS 的目标是实现跨设备的无缝协同和高性能。
DevEco Studio
对标 Android Studio,开发鸿蒙 OS 应用的 IDE。
发表于 11-02 19:38
Orange Pi OS(OH)发布,开源鸿蒙PC端来了!
正式向大家宣布一个喜讯:基于OpenHarmony定制研发的Orange Pi OS(OH)即将发布!日前,迅龙开源鸿蒙的工程师团队已经在搭载RK3566的开发板Orange Pi 3B上完成
发表于 10-26 11:32
华为鸿蒙OS4.0定档8月4号,华为Mate60首发
在本届大会上,华为将展示鸿蒙生态界的新成果、新开放能力以及鸿蒙开发产品套件。对于许多用户来说,本次会议最值得期待的是鸿蒙os 4.0。
评论