有没有能在百度app内实现返回弹窗功能的?

有没有能在百度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>