最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android統(tǒng)一處理登錄后攜帶數(shù)據(jù)跳轉(zhuǎn)到目標(biāo)頁面的方式

 更新時(shí)間:2023年06月09日 08:32:19   作者:shortybin  
我們?cè)陂_發(fā)的時(shí)候,一定會(huì)遇到頁面跳轉(zhuǎn),下面這篇文章主要給大家介紹了關(guān)于Android統(tǒng)一處理登錄后攜帶數(shù)據(jù)跳轉(zhuǎn)到目標(biāo)頁面的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

需求場景

我們?cè)陂_發(fā)應(yīng)用的時(shí)候經(jīng)常會(huì)遇到先登錄,登錄成功后再跳轉(zhuǎn)到目標(biāo)頁面。比如商品詳情頁面我們點(diǎn)擊購買必須要先登錄,登錄完成才能去下單支付。針對(duì)這種場景,我們一般有兩種做法:

  • 點(diǎn)擊購買跳轉(zhuǎn)到登錄,登錄完成需要用戶再次點(diǎn)擊購買才能去下單支付頁面,這種用戶體驗(yàn)不是很好。
  • 點(diǎn)擊購買跳轉(zhuǎn)到登錄,登錄完成直接跳轉(zhuǎn)到下單支付頁面。

第一種我們就不談了產(chǎn)品經(jīng)理不同意??。第二種我們一般是在 onActivityResult 里面獲取到登錄成功,然后根據(jù) code 跳轉(zhuǎn)到目標(biāo)頁面。這種方式缺點(diǎn)就是我們要在每個(gè)頁面都處理相同的邏輯還有定義各種 code,如果應(yīng)用里面很多這種場景也太繁瑣了。那有沒有統(tǒng)一的方式去處理這種場景就是我們今天的主題了。

封裝方式

我們的應(yīng)用是組件化的,APP 的頁面跳轉(zhuǎn)使用了 Arouter。所以我們統(tǒng)一處理使用 Arouter 封裝。直接上代碼

fun checkLoginToTarget(postcard: Postcard) {//Postcard 是 Arouter 的類
    if (User.isLogin()) {
        postcard.navigation()
    } else {
        //不能使用 postcard 切換 path 直接跳轉(zhuǎn),因?yàn)?group 可能不同,所以重新 build
        ARouter.getInstance().build(Constant.LOGIN)
            .with(postcard.extras)//獲取攜帶的參數(shù)重新轉(zhuǎn)入
            .withString(Constant.TAGACTIVIFY, postcard.path)//添加目標(biāo)路由
            .navigation()
    }
}
//登錄成功后在登錄頁面執(zhí)行這個(gè)方法
fun loginSuccess() {
    val intent= intent
    val target = intent.getStringExtra(Constant.TAGACTIVIFY)//獲取目標(biāo)路由
    target?.apply { 
        if (isNotEmpty()){
            val build = ARouter.getInstance().build(this)
            val extras = intent.extras//獲取攜帶的參數(shù)
            if (extras != null) {
                build.with(extras)
            }
            build.navigation()
        }
    }
    finish()
}

代碼加了注釋,使用 Kotlin 封裝了頂層函數(shù),登錄頁面在登錄成功后跳轉(zhuǎn)到目標(biāo)頁面,針對(duì)上面的場景直接調(diào)用 checkLoginToTarget 方法。

checkLoginToTarget(ARouter.getInstance().build(Constant.PAY_PAGE).withInt(Constant.GOOD_ID,id))

通過 Arouter 傳入下單支付的路由地址,并且攜帶了商品的 ID,生成了 Postcard 參數(shù)。登錄成功后能帶著商品 ID 直接下單支付了。

最后

如果項(xiàng)目里沒有使用路由庫可以使用 Intent 封裝實(shí)現(xiàn),或者別的路由庫也可以用上面的方式去做統(tǒng)一處理。

到此這篇關(guān)于Android統(tǒng)一處理登錄后攜帶數(shù)據(jù)跳轉(zhuǎn)到目標(biāo)頁面的文章就介紹到這了,更多相關(guān)Android登錄后攜帶數(shù)據(jù)跳轉(zhuǎn)頁面內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

林芝县| 大兴区| 开化县| 梨树县| 绥中县| 甘南县| 平昌县| 海原县| 肃南| 平阴县| 西昌市| 南华县| 察隅县| 布拖县| 九寨沟县| 六盘水市| 盘锦市| 泰来县| 岫岩| 朝阳区| 萨迦县| 乐山市| 邵东县| 横峰县| 唐山市| 柏乡县| 峨眉山市| 斗六市| 普定县| 乳山市| 景东| 景洪市| 绍兴市| 河池市| 新巴尔虎左旗| 绥滨县| 施甸县| 县级市| 宜州市| 台南市| 绥阳县|