女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

OpenAtom OpenHarmony ? 來源:未知 ? 2023-11-24 21:15 ? 次閱讀

點擊藍字 ╳ 關注我們

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

孫澳

OpenHarmony知識體系組

簡介

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

效果圖

wKgaomVgowOAMnJnAFUxibk44kI804.gif ?

使用說明

Arouter支持以下功能:

●支持頁面間路由跳轉;

●支持帶參數跳轉及回調;

●支持配置跳轉攔截器;

●支持預處理跳轉與否;

路由跳轉

1.不傳參跳轉通過Arouter.getInstance()創建路由對象,使用鏈式調用方法 build('')配置跳轉的頁面,navigation() 方法進行頁面跳轉。
import {Arouter} from "@ohos/arouteronactivityresult";
Arouter.getInstance()    
 .build("--/--")  //需要跳轉的地址    
 .navigation()

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

路由攔截

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

在跳轉前調用.setPretreatmentService() 方法,將 pretreatmentService傳入 setPretreatmentService()方法中完成預處理功能。

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

接口說明

ArouterwKgaomVgowOAaJS8AABZ7zRyQvI888.png ?回調接口wKgaomVgowOAFdW9AAA0dzkOMPk424.png ?

下載安裝

ohpminstall@ohos/arouteronactivityresult

源碼鏈接

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


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

文章出處:【微信公眾號:OpenAtom OpenHarmony】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 鴻蒙
    +關注

    關注

    59

    文章

    2525

    瀏覽量

    43778
  • OpenHarmony
    +關注

    關注

    27

    文章

    3833

    瀏覽量

    18158

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

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    DialogHub上線OpenHarmony開源社區,高效開發鴻蒙應用彈窗

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

    開源啦!!!基于鴻蒙ArkTS封裝的圖表組件《McCharts》,大家快來起共創

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

    Get這個秘籍,鴻蒙原生應用頁面滑動絲滑無比

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

    鴻蒙文件傳輸三方上線開源鴻蒙社區 十行代碼實現大文件高速傳輸

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

    用于InterBase的ODBC驅動程序:可與多個第三方工具兼容

    用于 InterBase 的 ODBC 驅動程序 Devart ODBC Driver for InterBase 是一款高性能連接工具,具有企業級功能,可在 32 位和 64 位 Windows
    的頭像 發表于 01-22 09:57 ?412次閱讀
    用于InterBase的ODBC驅動程序:可與多個第<b class='flag-5'>三方</b><b class='flag-5'>工具</b>兼容

    一款Cursor開源替代工具之Roo-Cline

    本文將介紹一款 Cursor 的開源替代工具。 Roo-Cline 是個在 IDE 中運行的自主編碼 Agent,屬于?Cline 的分支,針對速度和靈活性進行了優化,主要特點如下:
    的頭像 發表于 01-09 10:27 ?2685次閱讀
    <b class='flag-5'>一款</b>Cursor<b class='flag-5'>開源</b>替代<b class='flag-5'>工具</b>之Roo-Cline

    EE-303:將VisualDSP線程安全與第三方RTOS配合使用

    電子發燒友網站提供《EE-303:將VisualDSP線程安全與第三方RTOS配合使用.pdf》資料免費下載
    發表于 01-07 14:09 ?0次下載
    EE-303:將VisualDSP線程安全<b class='flag-5'>庫</b>與第<b class='flag-5'>三方</b>RTOS配合使用

    鴻蒙原生頁面高性能解決方案上線OpenHarmony社區 助力打造高性能原生應用

    NEXT的原生頁面高性能解決方案,從頁面滑動、跳轉及應用冷啟動等關鍵環節,為開發者提供全面的支持。目前,這些解決方案均已上線OpenHarmony開源社區,可在OpenHarmony三方
    發表于 01-02 18:00

    AKI跨語言調用神助攻C/C++代碼遷移至HarmonyOS NEXT

    跨語言調用,成為開發者和廠商面臨的重要挑戰。為解決這痛點,一款名為AKI (Alpha Kernel Interacting)的開源三方
    發表于 01-02 17:08

    三方檢測機構該如何提升核心競爭力?

    在國家“路”和“智能制造2025”等政策的引領下,面對競爭日益激烈的國際環境,作為全球最大的制造業國家,中國的檢測行業正經歷著迅猛的發展,成為全球增長最快、潛力最大的市場之。 第三方
    的頭像 發表于 12-17 15:44 ?767次閱讀
    第<b class='flag-5'>三方</b>檢測機構該如何提升核心競爭力?

    鴻蒙Flutter實戰:05-使用第三方插件

    # 鴻蒙Flutter 實戰:使用第三方插件 在鴻蒙Flutter開發中,如果涉及到使用原生功能,就要使用插件。使用插件有兩種方式,種是自己編寫原生ArkTS代碼,在Dart側調用。另外
    發表于 10-22 21:54

    瑞芯微RK3566鴻蒙開發板Android11修改第三方輸入法為默認輸入法

    本文適用于觸覺智能所有支持Android11系統的開發板修改第三方輸入法為默認輸入法。本次使用的是觸覺智能的Purple Pi OH鴻蒙開源主板,搭載了瑞芯微RK3566芯片,類樹莓派設計,是Laval官方社區主薦的一款鴻蒙開發
    的頭像 發表于 09-24 09:43 ?941次閱讀
    瑞芯微RK3566鴻蒙開發板Android11修改第<b class='flag-5'>三方</b>輸入法為默認輸入法

    開源鴻蒙】使用QEMU運行OpenHarmony系統

    本文將會介紹如何從源碼安裝QEMU 6.2.0,以及如何使用QEMU運行OpenHarmony系統。通過本文,你將會對QEMU和OpenHarmony系統又
    的頭像 發表于 09-14 08:51 ?1166次閱讀
    【<b class='flag-5'>開源</b>鴻蒙】使用QEMU運行OpenHarmony<b class='flag-5'>輕</b><b class='flag-5'>量</b>系統

    ?介紹一款Java開發的開源MES系統

    ?介紹一款Java開發的開源MES系統,萬界星空科技開源的MES系統。該系統基于Java開發,具有廣泛的適用性和高度的可定制性,能夠滿足不同行業、不同規模企業的智能制造需求。
    的頭像 發表于 09-05 17:39 ?1246次閱讀
    ?介紹<b class='flag-5'>一款</b>Java開發的<b class='flag-5'>開源</b>MES系統

    維天地低代碼開發平臺助力第三方質檢行業數據可視化

    三方檢驗是由獨立于買賣雙方利益之外的第三方機構(例如專業的監督檢驗機構)執行的,這些機構以公正、公平、權威的非當事人身份,依據雙方共同認可的法律、標準和合同等進行商品的符合性檢驗和認證活動
    的頭像 發表于 08-09 13:59 ?500次閱讀
    <b class='flag-5'>三</b>維天地低代碼開發平臺助力第<b class='flag-5'>三方</b>質檢行業數據可視化