Deeplink跳轉(zhuǎn)快應(yīng)用返回出現(xiàn)兩次系統(tǒng)添加桌面的彈框,deeplink原理Deeplink jump fast應(yīng)用返回系統(tǒng)兩次添加桌面的彈出框?,F(xiàn)象描述從應(yīng)用市場打開快應(yīng)用,點擊返回,系統(tǒng)添加桌面圖標(biāo)的彈出窗口只出現(xiàn)一次。但是當(dāng)你使用deeplink打開跳轉(zhuǎn)頁面點擊返回時,系統(tǒng)增加了桌面圖標(biāo),會彈出一次,然后再次閃......
現(xiàn)象描述
從應(yīng)用市場打開快應(yīng)用,點擊返回,系統(tǒng)添加桌面圖標(biāo)的彈出窗口只出現(xiàn)一次。但是當(dāng)你使用deeplink打開跳轉(zhuǎn)頁面點擊返回時,系統(tǒng)增加了桌面圖標(biāo),會彈出一次,然后再次閃爍。
問題分析
現(xiàn)在網(wǎng)絡(luò)正常通過Deeplink和網(wǎng)頁跳轉(zhuǎn)進入快捷應(yīng)用時,使用系統(tǒng)創(chuàng)建桌面圖標(biāo)時,彈出框出現(xiàn)一次,就不會再閃了。通過分析Deeplink跳轉(zhuǎn)的頁面代碼,發(fā)現(xiàn)頁面代碼中重寫了onBackPress函數(shù)。
其中this.entryDirect是跳轉(zhuǎn)時Deeplink攜帶的參數(shù)。
當(dāng)用戶單擊后退按鈕時,OnBackPress被觸發(fā)。當(dāng)返回true時,頁面按照自己的返回邏輯進行處理;返回false時,按照默認(rèn)的返回邏輯進行處理;如果沒有返回false,則根據(jù)默認(rèn)的返回邏輯進行處理。
在這段代碼中,開發(fā)者在onBackPress中判斷Deeplink已經(jīng)進入快應(yīng)用時,調(diào)用this.app.exit()退出應(yīng)用。此時會觸發(fā)finish事件,但是開發(fā)人員在onBackPress中沒有返回true,所以按照默認(rèn)的返回邏輯處理,這也觸發(fā)了finish事件。聽完finish事件后,fast應(yīng)用中心會彈出一個框,引導(dǎo)用戶創(chuàng)建一個圖標(biāo),導(dǎo)致兩個彈出框
解決方法
修改onBackPress函數(shù)代碼的接口,調(diào)用this.app.exit()退出應(yīng)用程序,不再使用默認(rèn)按鈕返回邏輯。
建議和總結(jié)
當(dāng)頁面需要使用onBackPress函數(shù)處理自己的邏輯時,需要在函數(shù)結(jié)束時返回true。否則系統(tǒng)在處理onBackPress代碼后會默認(rèn)返回邏輯,容易導(dǎo)致異常。
特別聲明:以上文章內(nèi)容僅代表作者本人觀點,不代表ESG跨境電商觀點或立場。如有關(guān)于作品內(nèi)容、版權(quán)或其它問題請于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號密碼登錄
平臺顧問
微信掃一掃
馬上聯(lián)系在線顧問
小程序
ESG跨境小程序
手機入駐更便捷
返回頂部