一。需求:微信小程序在使用webview 时,导航栏是不允许自己修改的。对于左上角的返回按钮,如果相要在返回的时候,弹框确定后再返回,微信小程序是没有api支持。在微信小程序的思路上基本无解。

二。解决办法:用于我们的webview 就是直接使用的微信浏览器。我们是可以使用js 相关的 History API. 主要是通过 设置 history.pushState 这个方法来阻止的。

history.pushState API说明:总共是三个参数,前面两个不用管直接用null 即可,第三个代码跳转页面的地址。

  • 首先进入页面时:执行下面代码

    <script type="text/javascript">window.history.pushState(null, null, null)
    </script>

    上面代码的目的就是添加一条历史记录。用于第三个参数为null,则不会发生跳转,但是会添加一条历史记录。然后加上自己的地址,这样就会存在两条历史记录。假如只有一条历史则不会触发 popstate 事件。

  • vue相关代码:

      data() {return {showConfirmModal: false,clickConfirm: false,isSaved: false // 是否保存的操作}},mounted() {window.addEventListener('popstate', this.handlePopstate)},beforeDestroy() {window.removeEventListener('popstate', this.handlePopstate)},methods: {confirmModal() {this.showConfirmModal = falsethis.clickConfirm = trueuni.navigateBack({delta: history.length})},closeModal() {this.showConfirmModal = falsehistory.pushState(null, null, document.URL)},handlePopstate() {if (!this.clickConfirm && this.isSaved) {history.pushState(null, null, document.URL)this.showConfirmModal = true}},}
  1. showConfirmModal :  用于显示弹框参数

  2. clickConfirm : 区分是否点击过确定按钮。点击后就一直为true。

  3. 当触发 popstate 事情时,需要先执行下 history.pushState 如果不执行则无法保留当前页面。当点击确定返回时,也会触发该事情,所以需要加一个参数进行控制。

  4. 点击 modal 确定按钮 则需要返回。微信小程序 直接使用。必须使用history.length不然无法退出。因为 history 的长度是大于1的。

    wx.navigateBack({delta: history.length
    })

问题咨询:加入QQ群:620302448。或者扫描加入。

微信小程序 webview 返回按钮阻止返回相关推荐

  1. 实现微信小程序web-view内嵌H5中的下载功能(大文件切片下载)

    实现微信小程序内嵌H5中的下载功能 一.项目场景: 难点 解决方案: 1.H5微信小程序: a.首先必不可少的是安装jweixin-module模块: b.在main.js中将依赖绑定: c.H5对应 ...

  2. 微信小程序webview页面使用painter生成海报

    微信小程序webview页面使用painter生成海报 因为要在webview下生成海报,需要使用cover-view,根据接口返回数据动态更新海报内容,微信小程序生成海报组件有wxa-plugin- ...

  3. 关于微信小程序webview的使用

    小程序 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验.同时提供一系列工具帮助开发者快速接入并完成小程序开发.关于如何注册配置就不多言了,本文主要 ...

  4. 微信小程序web-view公众号与小程序支付的切换使用

    微信小程序web-view公众号与小程序支付间的切换使用 最近小程序开放了新功能,支持内嵌网页.html写的网页,官网,网站,运行在浏览器上的,有域名的那种,可以内嵌到小程序里了! 那么这意味着什么呢 ...

  5. 微信小程序 - webview 的使用

    为什么80%的码农都做不了架构师?>>>    使用 webview 可以让小程序内嵌网页,利用这个功能可以实现些在微信小程序环境中受到局限的功能,当然也有一些坑,在此分享下. 介绍 ...

  6. 微信小程序webview(H5页面)调用微信小程序支付

    1.业务描述:微信小程序商城入口进入的页面是商城H5页面,在H5页面进行微信支付如何实现: 2.微信小程序(webview访问H5页面)必须使用微信小程序支付: 如何实现以及实现方式以及支付后页面返回 ...

  7. 微信小程序web-view 外部引用h5页面调用摄像头录制视频 配有提示音

    微信小程序web-view 外部引用h5页面调用摄像头录制视频 配有提示音 1.目前的需求是什么 2.都踩了那些坑 1.小程序 2.h5语音提示 3.语音合成声音录制不进去,ios有时候是麦克风,有时 ...

  8. [微信小程序]WebView内嵌H5实现本地文件上传

    [官方文档] 小程序与H5如何互相跳转 小程序与H5交互以上传文件为例 微信小程序开放能力web-view使用之h5页面与小程序页面交互传值 快速小程序开发之微信小程序内嵌 H5 微信小程序web-v ...

  9. 微信小程序webview清除缓存、微信公众号h5清除缓存、页面白屏、空白、不刷新问题

    一.缓存带来的问题和原因 我们在发布新版本的时候,在打开微信小程序webview嵌套的h5页面或微信公众号h5页面时,常常会发现页面还是上个版本的旧页面或者打开直接空白 白屏了,那么为什么会存在这个问 ...

  10. 开发那点事(十五)微信小程序webView首次进入白屏优化方案

    写在前面的话 公司最近项目已经进入使用阶段,从用户那边反应过来的问题,说小程序打开太慢,中间白屏几秒,于是想办法来做一个等待效果. 优化后效果 具体实现(已vue为例) 按照正常的思路,路由按需加载. ...

最新文章

  1. “相对论“ 2019-07-10
  2. 深度学习搞CV?图像数据不足咋办?看这里!
  3. sympy科学计算器
  4. sklearn svm如何选择核函数_文本挖掘篇|利用SVM进行短文本分类
  5. 《云计算:概念、技术与架构》一1.5 书写惯例
  6. python编程入门课 视频-Python入门到精通视频教程下载[21课程全]
  7. NeatUpload的安装使用 文件上传。可传大文件。
  8. 不小心删了sxos文件夹_如何恢复Mac废纸篓删除的文件
  9. lopatkin俄大神精简Windows 10 Pro 19041.450 20H1 Release x86-x64 ZH_CN DREY[2020-08-19]
  10. 通道注意力机制keras_注意力机制及Keras实现
  11. CryptoJS加密库使用及bug解决
  12. android Alarm 闹钟
  13. Office安装时遇到的问题
  14. 转:如何做好团队复盘?3大阶段、9个步骤
  15. Aspose.Cells Excel删除行
  16. 浅谈大型互联网的企业入侵检测及防护策略
  17. Kafka在zookeeper中存储结构和查看方式
  18. ORACLE单实例ADG搭建
  19. date java 格式化 sss_java DateFormat 格式化格式参考
  20. 关河无尽处,风雪有行人 - 我的2016年总结

热门文章

  1. 国内首部《区块链安全生存指南》联合发布
  2. 使用flash美化vc6.0的界面
  3. 实验项目二 贪吃蛇游戏开发
  4. 打字翻译都是一句话的事儿,轻松提升工作效率,咪鼠智能语音鼠标S7B体验
  5. 手机可以玩python吗_在手机上玩python编程-Pydroid3
  6. Django(缓存系统)
  7. WIFI Aware 介绍
  8. Spring Aware 是什么?
  9. UnicodeDecodeError: 'gbk' codec can't decode byte 0x8e in position 19024: illegal multibyte sequence
  10. FFmpeg使用GPU转码如何更改分辨率