景象形容
从利用市场关上快利用,点击返回时,零碎增加桌面图标只呈现一次弹窗。然而应用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/...
原作者:Mayism