中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

富平做網(wǎng)站中國職業(yè)培訓在線平臺

富平做網(wǎng)站,中國職業(yè)培訓在線平臺,好網(wǎng)站你知道的,政府網(wǎng)站集約化建設(shè)十分重要鴻蒙開發(fā)-UI-組件 鴻蒙開發(fā)-UI-組件2 鴻蒙開發(fā)-UI-組件3 鴻蒙開發(fā)-UI-氣泡/菜單 文章目錄 一、基本概念 二、頁面跳轉(zhuǎn) 1.router基本概念 2.使用場景 3.頁面跳轉(zhuǎn)參數(shù)傳遞 三、頁面返回 1.普通頁面返回 2.頁面返回前增加一個詢問框 1.系統(tǒng)默認詢問框 2.自定義詢問框 總…

鴻蒙開發(fā)-UI-組件

鴻蒙開發(fā)-UI-組件2

鴻蒙開發(fā)-UI-組件3

鴻蒙開發(fā)-UI-氣泡/菜單

文章目錄

一、基本概念

二、頁面跳轉(zhuǎn)

1.router基本概念

2.使用場景

3.頁面跳轉(zhuǎn)參數(shù)傳遞

三、頁面返回

1.普通頁面返回

2.頁面返回前增加一個詢問框

1.系統(tǒng)默認詢問框

2.自定義詢問框

總結(jié)


前言

前面系列文章,我們詳細學習了鴻蒙開發(fā)UI組件相關(guān)知識,學習了組件基本使用方法、自定義樣式以及各種組件的使用場景,本文將學習鴻蒙開發(fā)UI頁面路由

一、基本概念

頁面路由指在應(yīng)用程序中實現(xiàn)不同頁面之間的跳轉(zhuǎn)和數(shù)據(jù)傳遞。HarmonyOS提供了Router模塊,通過不同的url地址,可以方便地進行頁面路由,輕松地訪問不同的頁面

二、頁面跳轉(zhuǎn)

1.router基本概念

2.使用場景

場景一:一個主頁Home.ets和一個詳情頁Detail.ets,主頁點擊一個商品跳轉(zhuǎn)到詳情頁,詳情頁點擊返回回到主頁

實現(xiàn):pushUrl() +?Standard

代碼示例:

//step1:導(dǎo)入系統(tǒng)提供router模塊
import router from '@ohos.router';//step2:在Home.ets頁面,定義跳轉(zhuǎn)按鈕的綁定事件
function onJumpClick(): void {
//step3:調(diào)用pushUrl,
// 1.定義跳轉(zhuǎn)到目標url,
// 2.設(shè)置實例模式(默認standard,可以省略)
// 3.定義跳轉(zhuǎn)狀態(tài)的回調(diào)函數(shù),如果成功打印成功信息,如果失敗打印失敗信息router.pushUrl({url: 'pages/Detail' }, router.RouterMode.Standard, (err) => {if (err) {console.error(`Invoke pushUrl failed, code is ${err.code}, message is ${err.message}`);return;}console.info('Invoke pushUrl succeeded.');});
}

場景二:一個登錄頁Login.ets和一個個人中心頁Profile.ets,登錄頁成功登錄后跳轉(zhuǎn)到個人中心頁,同時銷毀登錄頁,在返回時直接退出應(yīng)用

實現(xiàn):replaceUrl() +?Standard

代碼示例:

//step1:導(dǎo)入系統(tǒng)提供router模塊
import router from '@ohos.router';//step2:在Login.ets頁面,定義跳轉(zhuǎn)按鈕的綁定事件
function onJumpClick(): void {
//step3:調(diào)用replaceUrl,
// 1.定義跳轉(zhuǎn)到目標url,
// 2.設(shè)置實例模式(默認standard,可以省略)
// 3.定義跳轉(zhuǎn)狀態(tài)的回調(diào)函數(shù),如果成功打印成功信息,如果失敗打印失敗信息router.replaceUrl({url: 'pages/Profile' }, router.RouterMode.Standard, (err) => {if (err) {console.error(`Invoke replaceUrlfailed, code is ${err.code}, message is ${err.message}`);return;}console.info('Invoke replaceUrlsucceeded.');});
}

場景三:一個設(shè)置頁Setting.ets和一個主題切換頁Theme.ets,從設(shè)置頁點擊主題選項,跳轉(zhuǎn)到主題切換頁。同時需要保證每次只有一個主題切換頁存在于頁面棧中,在返回時直接回到設(shè)置頁

實現(xiàn):pushUrl() +?Single

代碼示例:

//step1:導(dǎo)入系統(tǒng)提供router模塊
import router from '@ohos.router';//step2:在Setting.ets頁面,定義跳轉(zhuǎn)按鈕的綁定事件
function onJumpClick(): void {
//step3:調(diào)用pushUrl,
// 1.定義跳轉(zhuǎn)到目標url,
// 2.設(shè)置實例模式(默認standard,可以省略)
// 3.定義跳轉(zhuǎn)狀態(tài)的回調(diào)函數(shù),如果成功打印成功信息,如果失敗打印失敗信息router.pushUrl({url: 'pages/Theme' }, router.RouterMode.Single, (err) => {if (err) {console.error(`Invoke pushUrl failed, code is ${err.code}, message is ${err.message}`);return;}console.info('Invoke pushUrl succeeded.');});
}

場景四:一個搜索結(jié)果列表頁SearchResult.ets和一個搜索結(jié)果詳情頁SearchDetail.ets,從搜索結(jié)果列表頁點擊某一項結(jié)果,跳轉(zhuǎn)到搜索結(jié)果詳情頁。如果該結(jié)果已經(jīng)被查看過,則不需要再新建一個詳情頁,而是直接跳轉(zhuǎn)到已經(jīng)存在的詳情頁

實現(xiàn):replaceUrl() +?Single

代碼示例:

//step1:導(dǎo)入系統(tǒng)提供router模塊
import router from '@ohos.router';//step2:在SearchResult.ets頁面,定義跳轉(zhuǎn)按鈕的綁定事件
function onJumpClick(): void {
//step3:調(diào)用replaceUrl,
// 1.定義跳轉(zhuǎn)到目標url,
// 2.設(shè)置實例模式(默認standard,可以省略)
// 3.定義跳轉(zhuǎn)狀態(tài)的回調(diào)函數(shù),如果成功打印成功信息,如果失敗打印失敗信息router.replaceUrl({url: 'pages/SearchDetail' }, router.RouterMode.Single, (err) => {if (err) {console.error(`Invoke replaceUrlfailed, code is ${err.code}, message is ${err.message}`);return;}console.info('Invoke replaceUrlsucceeded.');});
}

3.頁面跳轉(zhuǎn)參數(shù)傳遞

頁面跳轉(zhuǎn)源頁面構(gòu)造傳遞數(shù)據(jù)

代碼示例

//step1:定義頁面?zhèn)鬟f數(shù)據(jù)的模型
class DataModelInfo {age: number;
}class DataModel {id: number;info: DataModelInfo;
}function onJumpClick(): void {
//step2:定義跳轉(zhuǎn)頁面,傳遞的數(shù)據(jù)實例paramsInfolet paramsInfo: DataModel = {id: 123,info: {age: 20}};
//step3:pushUrl方法中 定義params并將頁面跳轉(zhuǎn)傳遞數(shù)據(jù)實例賦值給params參數(shù)router.pushUrl({url: 'pages/Detail',params: paramsInfo }, (err) => {if (err) {console.error(`Invoke pushUrl failed, code is ${err.code}, message is ${err.message}`);return;}console.info('Invoke pushUrl succeeded.');})
}

頁面跳轉(zhuǎn)目標頁面接收傳遞數(shù)據(jù)

代碼示例

const params = router.getParams(); // 獲取傳遞過來的參數(shù)對象
const id = params['id']; // 獲取id屬性的值
const age = params['info'].age; // 獲取age屬性的值

三、頁面返回

當用戶在一個頁面完成操作后,通常需要返回到上一個頁面或者指定頁面,這就需要用到頁面返回功能。在返回的過程中,可能需要將數(shù)據(jù)傳遞給目標頁,這就需要用到數(shù)據(jù)傳遞功能。

1.普通頁面返回

用以下幾種頁面返回方式

方式一:返回到上一個頁面

router.back();

方式二:返回到指定頁面

router.back({url: 'pages/Home'
});

方式三:返回到指定頁面并傳遞自定義參數(shù)信息

router.back({url: 'pages/Home',params: {info: '來自Home頁'}
});

2.頁面返回前增加一個詢問框

在開發(fā)應(yīng)用時,為了避免用戶誤操作或者丟失數(shù)據(jù),有時候需要在用戶從一個頁面返回到另一個頁面之前,彈出一個詢問框,讓用戶確認是否要執(zhí)行這個操作。

1.系統(tǒng)默認詢問框

Router模塊提供的兩個方法可以實現(xiàn)返回前彈窗詢問框,router.showAlertBeforeBackPage() + router.back()

router.showAlertBeforeBackPage()方法接收一個對象作為參數(shù),該對象包含一個message屬性,s類型為string,表示詢問框的內(nèi)容。如果調(diào)用成功,則會在目標界面開啟頁面返回詢問框;如果調(diào)用失敗,則會拋出異常,并通過err.code和err.message獲取錯誤碼和錯誤信息。

當用戶點擊“返回”按鈕時,會彈出確認對話框,詢問用戶是否確認返回。選擇“取消”將停留在當前頁目標頁;選擇“確認”將觸發(fā)router.back()方法,并根據(jù)參數(shù)決定如何執(zhí)行跳轉(zhuǎn)。

代碼示例,通過step1,step2,step3 完成頁面返回彈出系統(tǒng)默認詢問框的操作

//step1:導(dǎo)入頁面路由Router模塊
import router from '@ohos.router';
//step2:定義一個返回按鈕的點擊事件處理函數(shù)
function onBackClick(): void {//step3: 調(diào)用router.showAlertBeforeBackPage()方法,設(shè)置返回詢問框的信息try {router.showAlertBeforeBackPage({message: '您還沒有完成支付,確定要返回嗎?' // 設(shè)置詢問框的內(nèi)容});} catch (err) {console.error(`Invoke showAlertBeforeBackPage failed, code is ${err.code}, message is ${err.message}`);}//step4: 調(diào)用router.back()方法,返回上一個頁面router.back();
}

2.自定義詢問框

自定義詢問框的方式,可以使用彈窗和自定義彈窗來實現(xiàn),這樣可以讓應(yīng)用界面與系統(tǒng)默認詢問框有所區(qū)別,提高應(yīng)用的用戶體驗度。實現(xiàn)方式是通過promptAction.showDialog()打開彈窗

代碼示例

//step1:先導(dǎo)入Router模塊
import router from '@ohos.router';
//step2:定義點擊返回回調(diào)函數(shù)
function onBackClick() {//step3:彈出自定義的詢問框,message屬性定義彈框提示信息,buttons數(shù)組定義彈框中按鈕,then定義彈框按鈕被點擊后響應(yīng)邏輯,catch定義彈框按鈕被點擊異常響應(yīng)邏輯promptAction.showDialog({message: '您還沒有完成支付,確定要返回嗎?',buttons: [{text: '取消',color: '#FF0000'},{text: '確認',color: '#0099FF'}]}).then((result) => {if (result.index === 0) {// 用戶點擊了“取消”按鈕console.info('User canceled the operation.');} else if (result.index === 1) {// 用戶點擊了“確認”按鈕console.info('User confirmed the operation.');// 調(diào)用router.back()方法,返回上一個頁面router.back();}}).catch((err) => {console.error(`Invoke showDialog failed, code is ${err.code}, message is ${err.message}`);})
}

當用戶點擊step2定義的回調(diào)函數(shù)綁定的按鈕時,會彈出自定義的詢問框,詢問用戶是否確認返回。選擇“取消”將停留在當前頁目標頁;選擇“確認”將觸發(fā)router.back()方法,并根據(jù)參數(shù)決定如何執(zhí)行跳轉(zhuǎn)。


總結(jié)

本文詳細學習了鴻蒙開發(fā)UI頁面跳轉(zhuǎn)的相關(guān)知識,學習頁面路由router基本概念,使用方法,頁面路由兩種跳轉(zhuǎn)模式和兩種實例模式的區(qū)別以及不同跳轉(zhuǎn)模式和實例模式組合下的使用場景,學習了頁面跳轉(zhuǎn)后普通返回和帶彈窗的返回使用方法,學習了頁面帶數(shù)據(jù)的跳轉(zhuǎn)方式以及目標頁面接收數(shù)據(jù)的方法,下文將學習鴻蒙UI開發(fā)組件導(dǎo)航。

http://www.risenshineclean.com/news/36139.html

相關(guān)文章:

  • 網(wǎng)站設(shè)計創(chuàng)意2023年6月疫情情況
  • 做ppt好用的網(wǎng)站廣告代發(fā)平臺
  • wen前端網(wǎng)站開發(fā)日記外鏈的作用
  • 清遠企業(yè)網(wǎng)站排名win7優(yōu)化教程
  • 權(quán)重較高網(wǎng)站深圳百度推廣聯(lián)系方式
  • 專注大連網(wǎng)站建設(shè)百度推廣登錄手機版
  • asp.net 網(wǎng)站訪問量商品推廣與營銷的方式
  • 京東商城網(wǎng)站設(shè)計酒店如何進行網(wǎng)絡(luò)營銷
  • 畫冊制作揭陽seo推廣公司
  • 永嘉網(wǎng)站建設(shè)幾熱門關(guān)鍵詞
  • 山東美建站金華百度推廣公司
  • 開發(fā)一個視頻網(wǎng)站要多少錢360優(yōu)化大師app下載
  • 南城區(qū)網(wǎng)站仿做網(wǎng)絡(luò)營銷推廣與策劃
  • 05網(wǎng)亮點給力大試卷網(wǎng)站seo博客
  • 贛州信息港贛州熱線湖南seo網(wǎng)站多少錢
  • 我的世界做神器指令網(wǎng)站網(wǎng)絡(luò)平臺建站
  • 網(wǎng)站開發(fā)難學嗎今天的新聞 聯(lián)播最新消息
  • 用vs2010做的網(wǎng)站網(wǎng)頁設(shè)計模板圖片
  • 陽信做網(wǎng)站營銷型網(wǎng)站建設(shè)費用
  • 昆明做網(wǎng)站的個人淘寶seo搜索引擎原理
  • 南陽做網(wǎng)站百度搜索引擎排名規(guī)則
  • 公司網(wǎng)站開發(fā)交接注意事項seo研究中心怎么了
  • 做網(wǎng)站網(wǎng)絡(luò)seo優(yōu)化教程自學
  • wordpress 獲取根目錄上海seo網(wǎng)站推廣公司
  • 靜態(tài)網(wǎng)站開發(fā)預(yù)期效果關(guān)鍵詞生成器 在線
  • 南京做代賬會計在哪個網(wǎng)站上找百度快照在哪里找
  • 深圳品牌做網(wǎng)站公司今日國內(nèi)新聞10則
  • 做爰網(wǎng)站貼吧推銷產(chǎn)品的軟文500字
  • 平面設(shè)計在線課程文明seo技術(shù)教程網(wǎng)
  • 上海專建貿(mào)易有限公司廊坊百度關(guān)鍵詞優(yōu)化