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


現象描述
從應用市場打開快應用,點擊返回時,系統添加桌面圖標只出現一次彈窗。但是使用deeplink打開跳轉頁面,點擊返回時,系統添加桌面圖標會出現一次彈窗后再閃一次。

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

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

onBackPress是用戶點擊返回按鈕時觸發的,當返回true表示頁面按應用自己的返回邏輯處理,返回false表示按默認的返回邏輯處理,不返回值則和返回false一樣,按默認的返回邏輯處理。

在這段代碼中,開發者在onBackPress中判斷為Deeplink進入快應用時,調用this.app.exit()退出應用,此時會觸發finish事件,而開發者沒有在onBackPress返回true,所以按默認的返回邏輯處理,也觸發了finish事件。快應用中心在監聽到finish事件后,就會彈框引導用戶創建圖標,從而導致出現兩次彈框。

解決方法
對界面onBackPress函數代碼進行修改,調用this.app.exit()退出應用后,不再使用默認按鈕返回邏輯。

image

建議與總結
當頁面需要使用onBackPress(監聽返回按鈕動作)函數處理自己邏輯時,需要在函數最后返回true,否則處理完onBackPress代碼后默認會走系統返回邏輯,容易導致異常。

原文鏈接:https://developer.huawei.com/consumer/cn/forum/topic/0204422876080970622?fid=18
原作者:Mayism


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM