有没有能在百度app内实现返回弹窗功能的?
html页面,百度app内打开后,用户想要返回,就弹出一个div窗口。
我已经用js实现了百度app外的其他浏览器上实现返回弹窗了,目前只有百度app实现不了,查了一下好像要用vue才能实现。
有没有谁做过类似案例或者能做的可以回复一下,谢谢~
各位不用回复我怎么写,我不懂代码,我想要zhao能做这个的人~
要在用户退出页面时弹出一个弹窗,按照常理来说是不合理的,因为页面在用户退出时就要开始销毁了。为了解决这个问题,就需要使用h5中提供的history的api。history.pushState()可以向浏览器的历史记录栈中推进一条记录而不刷新页面,所以在可以在页面刚加载完时,使用pushState添加一个带#的记录,这样用户在第一次返回时,其实只是改变了url中的锚点,而不会改变内容。这个时候通过监听popstate事件,在其响应中弹出弹窗即可。
以下答案由GPT-3.5大模型与博主波罗歌共同编写:
在百度app内实现返回弹窗的功能需要使用百度的JSBridge接口。
你可以参考以下代码:
<!-- 引入JSBridge接口 -->
<script src="//gss0.baidu.com/5LUZemba_QUU8tOmm2_p_buk/js/Bridge.js"></script>
<script>
// 注册监听Android返回键的事件,弹出提示框
window.Bridge && Bridge.on("back", function() {
if (confirm("确定要离开此页面吗?")) {
Bridge.onBackPressed();
}
});
</script>
在上述代码中,我们先引入了百度的JSBridge接口,然后注册了一个在Android返回键被按下时触发的事件。在事件中,我们可以弹出提示框询问用户是否离开此页面,如果用户点击了确定按钮,则调用JSBridge的onBackPressed方法实现返回。
这段代码可以放在你的HTML文件中的head标签里面。
请注意,以上代码只是针对Android系统。如果你需要适配iOS系统,需要使用其他的JSBridge接口。
如果我的回答解决了您的问题,请采纳!
该回答引用chatgpt:
在百度App中,可以使用百度的WebApp SDK来实现此功能。您可以在HTML页面中引入该SDK,然后使用其中提供的API来监听返回事件,例如
<script src="//gss0.bdstatic.com/5bVWsj_p_tVS5dKfpU_Y_D3/res/r/webapp_sdk/0.0.1/webapp_sdk.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
window.WebApp.init();
window.WebApp.onBack(function() {
// 在这里显示弹窗
});
});
</script>
上面的代码中,我们使用了window.WebApp.onBack方法来监听返回事件,并在事件发生时显示弹窗。需要注意的是,该方法只能在百度App中运行,如果在其他浏览器上运行会抛出异常。
vue
<template>
<div v-if="show">返回吗?</div>
</template>
<script>
export default {
data() {
return {
show: false
}
},
created() {
window.addEventListener('popstate', () => {
this.show = true;
});
}
}
</script>