uniapp 小程序 嵌套 webview 返回需要点击两次

打印 上一主题 下一主题

主题 513|帖子 513|积分 1539

uniapp 小程序 嵌套 webview 返回需要点击两次


  • 先 上图

  • 小程序也监听不到 返回事件
  • 在网上找了一圈 都没有理想的答案,猜测 是由于嵌入的页面中有标题
  • 果然
小程序中嵌入的代码
  1.         <view>
  2.                 <web-view :src="urlSrc" ></web-view>
  3.         </view>
  4.         export default {
  5.                 data() {
  6.                         return {
  7.                            urlSrc: "",
  8.                         }
  9.             },
  10.             onLoad(options) {
  11.                 // 这里是要嵌入的页面路径
  12.                         this.urlSrc = getApp().globalData.webViewUrl + "/#/viewsEdit?key=" + options.id+"&token="+options.token
  13.                 },
  14.    }
复制代码
嵌入项目 app.vue
由于我需要在该项目中先登录,再跳转到 /viewsEdit 页面 所以需要再app.vue中做默认登陆操作,然后再跳转到 /viewsEdit
  1. <template>
  2.   <div id="app">
  3.     <RouterView />
  4.   </div>
  5. </template>
  6. <script>
  7. export default {
  8.   created() {
  9.     // 有发送就有接收,与postMessage配套使用的就是message事件
  10.     let that = this
  11.     window.onload = function () {
  12.       let datas = that.getUrlParams(window.location.href)
  13.        localStorage.setItem('token', datas.token)
  14.         // 登录成功后路由跳回
  15.         // 重点
  16.         // 重点
  17.         // 重点
  18.         // 此处一定要使用  replace  替换掉 路由栈中的记录
  19.         // 不然 路由栈中会存在  ['/','/viewsEdit'] 两个记录  所以需要点两次才能退出
  20.         // 使用 replace 后 路由栈中就剩了 ['/viewsEdit']
  21.         
  22.         // this.$router.push({
  23.         //  path: '/viewsEdit',
  24.         //  query: {
  25.         //   key: datas.key,
  26.         // }
  27.         // })
  28.         this.$router.replace({
  29.           path: '/viewsEdit',
  30.           query: {
  31.             key: datas.key,
  32.           }
  33.         })
  34.     }
  35.   },
  36.   methods: {
  37.     getUrlParams(url) {
  38.       const params = {}
  39.       const reg = /([^?&=]+)=([^&]*)/g
  40.       url.replace(reg, (match, key, value) => {
  41.         params[decodeURIComponent(key)] = decodeURIComponent(value)
  42.       })
  43.       return params
  44.     }
  45.   }
  46. }
  47. </script>
复制代码

  • 搞定 , 日常记录!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

何小豆儿在此

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表