deeplink跳轉快應用返回出現兩次系統新增桌面的彈框

華為開發者論壇發表於2021-04-21

現象描述

從應用市場開啟快應用,點選返回時,系統新增桌面圖示只出現一次彈窗。但是使用 deeplink開啟跳轉頁面,點選返回時,系統新增桌面圖示會出現一次彈窗後再閃一次。

問題分析

現網正常透過 Deeplink、網頁跳轉方式進入快應用時,使用系統建立桌面圖示時,出現一次彈框,不會再閃一次。對Deeplink跳轉的頁面程式碼進行分析,發現頁面程式碼裡對onBackPress(監聽返回按鈕動作)函式進行了重寫處理。

其中 this.entryDirect為Deeplink跳轉時攜帶的引數。

onBackPress是使用者點選返回按鈕時觸發的,當返回true表示頁面按應用自己的返回邏輯處理,返回false表示按預設的返回邏輯處理,不返回值則和返回false一樣,按預設的返回邏輯處理。

在這段程式碼中,開發者在 onBackPress中判斷為Deeplink進入快應用時,呼叫this.app.exit()退出應用,此時會觸發finish事件,而開發者沒有在onBackPress返回true,所以按預設的返回邏輯處理,也觸發了finish事件。快應用中心在監聽到finish事件後,就會彈框引導使用者建立圖示,從而導致出現兩次彈框。

解決方法

對介面 onBackPress函式程式碼進行修改,呼叫this.app.exit()退出應用後,不再使用預設按鈕返回邏輯。

建議與總結

當頁面需要使用 onBackPress(監聽返回按鈕動作)函式處理自己邏輯時,需要在函式最後返回true,否則處理完onBackPress程式碼後預設會走系統返回邏輯,容易導致異常。


原文連結: https://developer.huawei.com/consumer/cn/forum/topic/0204422876080970622?fid=18

原作者:Mayism

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69970551/viewspace-2769037/,如需轉載,請註明出處,否則將追究法律責任。

相關文章