91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【開源三方庫】Arouter:一款輕量、高效的頁面路由工具

OpenAtom OpenHarmony ? 來源:未知 ? 2023-11-24 21:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

點擊藍(lán)字 ╳ 關(guān)注我們

開源項目 OpenHarmony是每個人的 OpenHarmony wKgaomVgowKABhtvAABG3jYJR5o827.jpg

孫澳

OpenHarmony知識體系組

簡介

Arouter是一款適用于OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)的輕量高效的頁面路由工具,相比原生的路由方案,Arouter更有優(yōu)勢。傳統(tǒng)的路由方案使用顯示Intent和隱式Intent進(jìn)行跳轉(zhuǎn),會存在一些問題。使用顯式Intent耦合度過高,而使用隱式Intent集中式管理Path會導(dǎo)致協(xié)作困難。Arouter采用自定義的路由方案,通過解析標(biāo)準(zhǔn)URL進(jìn)行跳轉(zhuǎn),避免了直接依賴的問題。使用分布式管理頁面配置,解決了集中式管理Path的問題,整個路由跳轉(zhuǎn)過程更加透明,具有更好的擴展性。Arouter相比原生路由方案,具有更低的耦合度、更好的協(xié)作性和控制攔截能力,同時采用分布式管理頁面配置,提供了更好的擴展性,目前支持SDK:OpenHarmony API Version 10版本。

效果圖

wKgaomVgowOAMnJnAFUxibk44kI804.gif ?

使用說明

Arouter支持以下功能:

●支持頁面間路由跳轉(zhuǎn);

●支持帶參數(shù)跳轉(zhuǎn)及回調(diào);

●支持配置跳轉(zhuǎn)攔截器;

●支持預(yù)處理跳轉(zhuǎn)與否;

路由跳轉(zhuǎn)

1.不傳參跳轉(zhuǎn)通過Arouter.getInstance()創(chuàng)建路由對象,使用鏈?zhǔn)秸{(diào)用方法 build('')配置跳轉(zhuǎn)的頁面,navigation() 方法進(jìn)行頁面跳轉(zhuǎn)。
import {Arouter} from "@ohos/arouteronactivityresult";
Arouter.getInstance()    
 .build("--/--")  //需要跳轉(zhuǎn)的地址    
 .navigation()

2.傳參跳轉(zhuǎn)在不傳參跳轉(zhuǎn)的基礎(chǔ)上,跳轉(zhuǎn)之前通過withParams()進(jìn)行參數(shù)配置。
import {Arouter} from "@ohos/arouteronactivityresult";
Arouter.getInstance()    
 .build("--/--")  //需要跳轉(zhuǎn)的地址    
 .withParams({index:"--"})    
.navigation()
3.路由回調(diào)路由回調(diào)需要配合NavigationCallback接口進(jìn)行,在路由前的頁面實現(xiàn)NavigationCallback接口
import {NavigationCallback} from '@ohos/arouteronactivityresult'
var callback:NavigationCallback = {    
 onInterrupt(postcard){},    
 onArrival(postcard){},    
 onActivityResult(data){}
}
然后將callback傳入 .navigationWithCallback()中進(jìn)行跳轉(zhuǎn)
import {Arouter} from "@ohos/arouteronactivityresult";
Arouter.getInstance()    
 .build("--")//需要跳轉(zhuǎn)的地址    
.navigationWithCallback(callback)
在目標(biāo)頁面的onPageShow()生命周期中調(diào)用getPostcard()方法獲取到指定的postcard
import router from '@ohos.router';
if (postcard == null) { 
 postcard =  Arouter.getInstance().getPostcard(router.getState().path+router.getState().name);   
}
使用 postcard.getNavigationCallback() 方法調(diào)用對應(yīng)的回調(diào)方法,即可回調(diào)源頁面實現(xiàn)的方法
postcard.getNavigationCallback().onActivityResult(params)

路由攔截

1.配置攔截器在攔截器中的process()方法中實現(xiàn)頁面的攔截,通過interceptorCallback.onInterrupt()中斷跳轉(zhuǎn),interceptorCallback.onContinue()繼續(xù)跳轉(zhuǎn)。
import {Postcard,IInterceptor,InterceptorCallback} from '@ohos/arouteronactivityresult';
var iInterceptor:IInterceptor= {
    process(postcard:Postcard, interceptorCallback:InterceptorCallback) {
        // 選擇攔截的頁面,若跳轉(zhuǎn)時有該路徑則進(jìn)行攔截提示,若沒有則直接跳轉(zhuǎn)
        if (Postcard.getUri() == 'pages/transit') {
            // 選擇彈框
            AlertDialog.show(
                {
                    message: '被攔截了,點擊繼續(xù)跳轉(zhuǎn)',
                    primaryButton: {
                        value: '取消',
                        action: () => {
                            // 中斷跳轉(zhuǎn)
                         interceptorCallback.onInterrupt(postcard)
                        }
                    },
                    secondaryButton: {
                        value: '繼續(xù)',
                        action: () => {
                            // 繼續(xù)跳轉(zhuǎn)
                        interceptorCallback.onContinue(postcard);
                        }
                    },
                }
            )
        } else {
            // 繼續(xù)跳轉(zhuǎn)
            interceptorCallback.onContinue(postcard);
        }
    }
}
2.注冊攔截器
import {registerInterceptor} from '@ohos/arouteronactivityresult';
registerInterceptor(iInterceptor);
3.移除攔截器
import {unregisterInterceptor} from '@ohos/arouteronactivityresult';
unregisterInterceptor()
4.配置綠色通道在跳轉(zhuǎn)前使用.setGreenChannel()方法跳過攔截(true:跳過攔截)。
Arouter.getInstance()
    .build("--/--")//需要跳轉(zhuǎn)的地址
    .setGreenChannel(true)
.navigation()
5.配置預(yù)處理跳轉(zhuǎn)與否預(yù)處理:實現(xiàn) PretreatmentService 接口中 onPretreatment 方法,并返回一個Boolean值(true:繼續(xù)跳轉(zhuǎn),false:不跳轉(zhuǎn))。
import {PretreatmentService} from '@ohos/arouteronactivityresult';
var pretreatmentService:PretreatmentService = {
  onPretreatment(postcardboolean{
    return true
  }
}

在跳轉(zhuǎn)前調(diào)用.setPretreatmentService() 方法,將 pretreatmentService傳入 setPretreatmentService()方法中完成預(yù)處理功能。

Arouter.getInstance()
    .build(this.router)
    .setPretreatmentService(pretreatmentService)
.navigationWithCallback(callback)

接口說明

ArouterwKgaomVgowOAaJS8AABZ7zRyQvI888.png ?回調(diào)接口wKgaomVgowOAFdW9AAA0dzkOMPk424.png ?

下載安裝

ohpminstall@ohos/arouteronactivityresult

源碼鏈接

https://gitee.com/openharmony-tpc/arouter-api-onActivityResult


原文標(biāo)題:【開源三方庫】Arouter:一款輕量、高效的頁面路由工具

文章出處:【微信公眾號:OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 鴻蒙
    +關(guān)注

    關(guān)注

    60

    文章

    2963

    瀏覽量

    45883
  • OpenHarmony
    +關(guān)注

    關(guān)注

    33

    文章

    3952

    瀏覽量

    21096

原文標(biāo)題:【開源三方庫】Arouter:一款輕量、高效的頁面路由工具

文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    CW32W031調(diào)制頻率的話有第三方軟件工具么?

    請問,CW32W031調(diào)制頻率的話,有第三方軟件工具么?仿真軟件也行
    發(fā)表于 01-19 06:54

    釘釘正式開源HarmonyOS圖片編輯組件

    近日,由釘釘團隊自主研發(fā)的“HarmonyOS圖片編輯組件”正式上線OpenHarmony三方中心倉并開源。作為一款填補鴻蒙社區(qū)圖像處理領(lǐng)域空白的重量級組件,該方案基于Harmony
    的頭像 發(fā)表于 01-05 09:58 ?495次閱讀

    SEGGER Ozone調(diào)試器支持第三方調(diào)試工具

    SEGGER強大的Ozone調(diào)試器和性能分析器,長期以來直深受J-Link和J-Trace用戶的信任,現(xiàn)在可以支持第三方調(diào)試工具了。
    的頭像 發(fā)表于 09-29 11:45 ?1131次閱讀

    知乎開源“智能預(yù)渲染框架” 幾行代碼實現(xiàn)鴻蒙應(yīng)用頁面“秒開”

    近日,知乎在Gitee平臺開源了其自研的鴻蒙“智能預(yù)渲染框架”,并將該框架的Har包上架到OpenHarmony三方中心倉。該框架在鴻蒙平臺首創(chuàng)“智能預(yù)渲染”技術(shù),旨在破解應(yīng)用復(fù)雜頁面
    的頭像 發(fā)表于 08-29 14:32 ?627次閱讀
    知乎<b class='flag-5'>開源</b>“智能預(yù)渲染框架” 幾行代碼實現(xiàn)鴻蒙應(yīng)用<b class='flag-5'>頁面</b>“秒開”

    貨拉拉開源三方,為鴻蒙應(yīng)用高效開發(fā)貢獻(xiàn)力量

    、可擴展的通用工具,持續(xù)提升鴻蒙應(yīng)用的創(chuàng)新體驗與開發(fā)效率。 在這生態(tài)共建的浪潮中,貨拉拉積極貢獻(xiàn)了其在鴻蒙應(yīng)用開發(fā)過程中的寶貴經(jīng)驗與技術(shù)積累,開源了兩款實用三方
    的頭像 發(fā)表于 08-26 14:02 ?555次閱讀
    貨拉拉<b class='flag-5'>開源</b>兩<b class='flag-5'>款</b><b class='flag-5'>三方</b><b class='flag-5'>庫</b>,為鴻蒙應(yīng)用<b class='flag-5'>高效</b>開發(fā)貢獻(xiàn)力量

    基于開源鴻蒙的語音識別及語音合成應(yīng)用開發(fā)樣例

    本期內(nèi)容由AI Model SIG提供,介紹了在開源鴻蒙中,利用sherpa_onnx開源三方進(jìn)行ASR語音識別與TTS語音合成應(yīng)用開發(fā)的流程。
    的頭像 發(fā)表于 08-25 14:26 ?4111次閱讀
    基于<b class='flag-5'>開源</b>鴻蒙的語音識別及語音合成應(yīng)用開發(fā)樣例

    飛書富文本組件RichTextVista開源

    近日,飛書正式將其自研的富文本組件 RichTextVista(簡稱“RTV”)開源,并上線OpenHarmony 三方中心倉。該組件以領(lǐng)先的性能、流暢的渲染體驗與高度的開放性,為
    的頭像 發(fā)表于 07-16 16:47 ?1002次閱讀

    如何集成第三方支付API到電商網(wǎng)站

    ? 在電商網(wǎng)站中,集成第三方支付API是確保交易安全、提升用戶體驗的關(guān)鍵步驟。本文將逐步指導(dǎo)您完成整個流程,從選擇支付提供商到上線后的監(jiān)控。文章結(jié)構(gòu)清晰,包含代碼示例和實用建議,幫助您高效實現(xiàn)支付
    的頭像 發(fā)表于 07-16 10:35 ?598次閱讀
    如何集成第<b class='flag-5'>三方</b>支付API到電商網(wǎng)站

    天合跟蹤獲得DNV第三方風(fēng)洞測試審查報告

    三方審核。這不僅是三方合作的里程碑,更是中國光伏跟蹤支架技術(shù)邁向國際高標(biāo)準(zhǔn)的重要步。DNV對此研究成果的專業(yè)性以及可靠性進(jìn)行了全面審查。
    的頭像 發(fā)表于 07-08 17:35 ?936次閱讀

    HarmonyOS入門指南

    OpenHarmony三方中心倉 堅果派 童長老倉庫中心 鴻蒙寶典 本快速學(xué)習(xí)鴻蒙的電子書 promises-book JavaScript Promise迷你書。 harmony-utils
    的頭像 發(fā)表于 06-27 00:11 ?787次閱讀

    三方工業(yè)互聯(lián)網(wǎng)平臺有哪些

    三方工業(yè)互聯(lián)網(wǎng)平臺有哪些
    的頭像 發(fā)表于 06-14 15:48 ?1109次閱讀

    DialogHub上線OpenHarmony開源社區(qū),高效開發(fā)鴻蒙應(yīng)用彈窗

    三方,只需要一兩個配置項就可以輕松解決上述問題。 “DialogHub”可高效地解決以下3點問題:1、上文提到的焦點、手勢、動畫等交互問題;2、彈窗需要與UI進(jìn)行解耦。3、彈窗需要具備復(fù)用能力
    發(fā)表于 04-03 17:30

    開源啦!?。』邙櫭葾rkTS封裝的圖表組件《McCharts》,大家快來起共創(chuàng)

    及時反饋 開源代碼管理管理開源代碼我們選擇了GitHub,比較主流,后續(xù)也會放開其他的。而開發(fā)完的組件我們使用的是OpenHarmony三方中心倉來管理,鴻蒙目前也只支持這個中心倉下
    發(fā)表于 03-15 15:21

    Get這個秘籍,鴻蒙原生應(yīng)用頁面滑動絲滑無比

    Prefetcher接口監(jiān)聽數(shù)據(jù)項的變化,動態(tài)控制資源的下載與取消,并結(jié)合ImageKnife三方實現(xiàn)具體的預(yù)取和緩存管理。這種動態(tài)預(yù)加載策略突破了以往解決方案的局限性,提供了種更加智能、
    發(fā)表于 03-06 14:41

    鴻蒙文件傳輸三方上線開源鴻蒙社區(qū) 十行代碼實現(xiàn)大文件高速傳輸

    近日,華為在OpenHarmony社區(qū)上線了“super_fast_file_trans”文件傳輸三方(以下簡稱“SFFT”)。這一三方的推出,為開發(fā)者提供了
    發(fā)表于 03-06 10:29