共计 708 个字符,预计需要花费 2 分钟才能阅读完成。
景象形容
从利用市场关上快利用,点击返回时,零碎增加桌面图标只呈现一次弹窗。然而应用 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