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))
}
}
}
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
封裝
+關注
關注
126文章
7780瀏覽量
142722 -
OpenHarmony
+關注
關注
25文章
3659瀏覽量
16152 -
鴻蒙OS
+關注
關注
0文章
188瀏覽量
4368
發布評論請先 登錄
相關推薦
鴻蒙開發接口UI界面:【@ohos.router (頁面路由)】
本模塊首批接口從API version 8開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。
> - 頁面路由需要在頁面渲染完成之后才能調用,在onInit和onReady生命周期中
鴻蒙OS崛起,鴻蒙應用開發工程師成市場新寵
應用的形態也在發生著翻天覆地的變化。作為全球領先的移動操作系統和智能終端制造商,華為公司自主研發的鴻蒙OS應運而生,致力于構建一個統一的分布式操作系統,為各行各業的應用開發帶來全新的可能性。
一、
發表于 04-29 17:32
鴻蒙OS開發實例:【HarmonyHttpClient】網絡框架
鴻蒙上使用的Http網絡框架,里面包含純Java實現的HttpNet,類似okhttp使用,支持同步和異步兩種請求方式;還有鴻蒙版retrofit,和Android版Retrofit相似的使用,解放雙手般優雅使用注解、自動解析json
鴻蒙OS開發實例:【應用狀態變量共享】
平時在開發的過程中,我們會在應用中共享數據,在不同的頁面間共享信息。雖然常用的共享信息,也可以通過不同頁面中組件間信息共享的方式,但有時使用應用級別的狀態管理會讓開發工作變得簡單。
鴻蒙OS開發實例:【頁面傳值跳轉】
本篇主要介紹如何在HarmonyOS中,在頁面跳轉之間如何傳值
HarmonyOS 的頁面指的是帶有@Entry裝飾器的文件,其不能獨自存在,必須依賴UIAbility這樣的組件容器
如下是官方關于State模型開發模式
鴻蒙OS開發實例:【工具類封裝-http請求】
;@ohos.promptAction';**
**封裝HTTP接口請求類,提供格式化的響應信息輸出功能。
使用 DevEco Studio 3.1.1 Release 及以上版本,API 版本為 api 9 及以上
鴻蒙OS開發實例:【工具類封裝-emitter組件間通信】
`MyEmitterUtil` 是一個針對 HarmonyOS 的事件驅動編程封裝類,主要用于組件間的通信和數據傳遞。
評論