在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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】歡迎添加關注!文章轉載請注明出處。

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

    關注

    57

    文章

    2371

    瀏覽量

    42911
  • OpenHarmony
    +關注

    關注

    25

    文章

    3729

    瀏覽量

    16406

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

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

收藏 人收藏

    評論

    相關推薦

    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

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

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

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

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

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

    本文將會介紹如何從源碼安裝QEMU 6.2.0,以及如何使用QEMU運行OpenHarmony系統。通過本文,你將會對QEMU和OpenHarmony系統又
    的頭像 發表于 09-14 08:51 ?634次閱讀
    【<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 ?687次閱讀
    ?介紹<b class='flag-5'>一款</b>Java開發的<b class='flag-5'>開源</b>MES系統

    鴻蒙開發接口UI界面:【@ohos.router (頁面路由)】

    本模塊首批接口從API version 8開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。 > - 頁面路由需要在頁面渲染完成之后才能調用,在onInit和onReady生命周期中
    的頭像 發表于 05-28 16:26 ?970次閱讀
    鴻蒙開發接口UI界面:【@ohos.router (<b class='flag-5'>頁面</b><b class='flag-5'>路由</b>)】

    微軟或將開放Xbox主機授權給第三方廠商

    據悉,5 月 26 日,知名媒體 Windows Central 的編輯 Jez Corden 揭露了微軟即將遵循第三方手柄流程,允許在其 XBOX 主機上引入第三方產品。
    的頭像 發表于 05-27 15:18 ?675次閱讀

    Labview如何內嵌操作第三方EXE程序!

    自己在網上搜了下相關資料,能把第三方EXE內嵌進入容器里,但是有個問題,這個第三方軟件必須手動拖到容器正中間,手動最大化。請問有什么方法可以自動實現嗎? 下圖是我內嵌的POLL 軟件。如圖!
    發表于 04-18 14:26

    如何挑選一款性價比高的家用路由

    家庭網絡已經成為人們生活中不可或缺的部分。而選擇一款性價比高的家用路由器對于保障網絡連接質量、提升網絡體驗至關重要。本文將從性能、覆蓋范圍、安全性、易用性和價格等方面,為您介紹如何挑選一款
    的頭像 發表于 04-16 15:14 ?563次閱讀

    鴻蒙OS開發學習:【第三方調用】

    在Stage模型中,如何調用已經上架到[三方中心]的社區和項目內創建的本地
    的頭像 發表于 04-14 11:34 ?931次閱讀
    鴻蒙OS開發學習:【第<b class='flag-5'>三方</b><b class='flag-5'>庫</b>調用】

    Meta Quest頭顯將支持多款安卓第三方應用并行

    Meta已悄然啟動了與此相關的功能,意味著Quest頭顯可同時操作多個第三方Android應用。在此之前,Quest對第三方Android應用有嚴格限制,用戶每次僅能打開個,無法實現同屏幕并行多個第
    的頭像 發表于 03-11 10:58 ?770次閱讀

    MacPaw將于4月在歐洲市場推出Setapp第三方應用商城

    3月1日報道,知名廠商MacPaw于今日發表聲明,宣稱其自有的第三方應用商城Setapp將進軍歐洲市場,發布會定于今年4月舉行,并且官網預告了可供用戶試用的候選頁面,以吸引更多人參與到Setapp移動版本Beta的測試中來。
    的頭像 發表于 03-01 10:16 ?586次閱讀

    分享個據說是比Wget、Curl更強大的下載工具

    aria2 是一款高效的命令行下載工具。堪稱下載利器!
    的頭像 發表于 02-20 10:24 ?870次閱讀
    分享<b class='flag-5'>一</b>個據說是比Wget、Curl更強大的下載<b class='flag-5'>工具</b>!
    主站蜘蛛池模板: 欧美日韩高清一区| 日本aaaaa毛片动漫| 欧美色操| 亚洲欧洲色| 亚洲网站大全| 久久人人精品| 四虎影院在线看| 国产叼嘿网站免费观看不用充会员| 99久久伊人一区二区yy5099| 亚洲免费黄色网| 午夜免费视频网站| 自拍偷拍福利| 激情五月婷婷综合网| 日本大黄在线观看| 色婷婷色综合激情国产日韩| 在线看片成人免费视频| 日本级毛片免费观看| 国产男靠女免费视频网站| 97人洗澡人人澡人人爽| 中文字幕二区| 35pao强力打造| 好大好硬好深好爽视频h | 欧美黄色三级视频| 狠狠色综合久久婷婷| 精品一区二区三区免费毛片爱| 日韩亚洲人成网站在线播放| 天天色影视综合网| 伊人蕉久| 亚洲精品视频区| 亚洲最大的成人网| 在线天堂bt种子资源| 四虎精品影院永久在线播放| 四虎影视永久在线精品免费播放| 你懂得在线网址| 激情综合网五月婷婷| 夜夜五月天| 手机看片1024福利| 奇米精品| 中国一级特黄视频| 4438x成人网最大色成网站| 一级a级国产不卡毛片|