收藏
回答

web-view分享时ios下webViewUrl参数丢失

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 Bug web-view 客户端 6.7.1 2.2.2




点击分享时。ios下的webViewUrl中锚点#后面的参数获取不到。安卓才可以获取完整的

很急,在线等解决

回答关注问题邀请回答
收藏

21 个回答

  • 张杰
    张杰
    2018-08-09

    如何解决

    2018-08-09
    有用 4
    回复
  • Jackson
    Jackson
    2018-08-09

    求 解决方案.............

    2018-08-09
    有用 4
    回复
  • 不要问我,很忙的!
    不要问我,很忙的!
    2018-08-09

    感觉兼容性还是有待提高的,安卓与IOS的坑还是有不少的,望官方解决


    2018-08-09
    有用 3
    回复
  • steven
    steven
    2018-08-09

    同求,求解决方案~~~~~~

    2018-08-09
    有用 3
    回复
  • the_jun
    the_jun
    02-23

    2024年了 我估计也是遇到了这个问题 但是仅仅是在苹果10上会出现参数丢失的问题,其他后出现的苹果不会出现

    02-23
    有用
    回复
  • 一瓣春光
    一瓣春光
    2018-10-26

    【这是前提】前端框架支撑路由功能,比如我这里是通过vue的构建的页面,可以$route获取链接


    然后通过postMessage()和小程序对接。详情见:https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html?search-key=postMessage

    比如我这边是注册一个全局路由钩子进行拦截处理,让每次跳到新页面,给小程序发送页面当前链接

    // 全局路由
    router.beforeEach((to, from, next) => {
      console.log('to:', to, 'from:', from)
      // fix: ios小程序分享无法获得分享链接问题
      // !!!注意点: 通过location.href无法获取当前最新页面链接地址
      var path = to.fullPath;
      var href = location.origin + location.pathname + '#' + to.fullPath;
      console.log('向小程序发送当前页面链接信息', href);
      wx.miniProgram.postMessage({ data: { url: href} })
      next();
    })


    小程序接收的信息是一个数组,每次发送的信息都加到数组,所以获取最后一个数组项即是当前的地址。

    // 接收内嵌h5发送过来当前页面的链接地址
     
    postMessage(e) {
     
      let l = e.detail.data.length - 1;
     
      this.data.shareUrl = e.detail.data[l].url;
     
      console.log('webview页面发送过来的数据:', e);
     
    }

    这里也有个条件,也刚好撞上:就是

    postMessage发送的数据不会立即执行,需要触发(后退、组件销毁、分享)相关操作才能收到消息,这里刚好需要触发分享操作才能拿到数据。


    希望对大家有点帮助。


    2018-10-26
    有用
    回复
  • 酒柳八念
    酒柳八念
    2018-08-10

    src最好不要写死吧!莫名其妙的问题。我都是动态赋值的,虽然在js里也是写死的...

    2018-08-10
    有用
    回复
  • wliang
    wliang
    2018-08-09

    这个问题是不是中文问题 加一个编码过程试试

    2018-08-09
    有用
    回复
  • 大梦
    大梦
    2018-08-09

    把url用encodeURIComponent()和decodeURIComponent()转义,把url传过去的时候,用encodeURIComponent()转义,用的时候,用decodeURIComponent()解码

    2018-08-09
    有用
    回复 5
    • Very cold.
      Very cold.
      2018-08-09

      兄dei 你没理解。我不是在传值的时候丢失的参数,是直接就没拿到参数啊 - -!

      2018-08-09
      回复
    • 大梦
      大梦
      2018-08-09

      哈哈

      2018-08-09
      回复
    • Very cold.
      Very cold.
      2018-08-09回复大梦

      你这还笑的出,你的良心不会痛吗

      2018-08-09
      回复
    • 大梦
      大梦
      2018-08-09

      期待答案

      2018-08-09
      回复
    • 顾俊威
      顾俊威
      2018-08-27回复Very cold.

      解决了吗

      2018-08-27
      回复
  • 星痕
    星痕
    2018-08-09

    https://developers.weixin.qq.com/blogdetail?action=get_post_info&docid=000aca6c0a44389c15363fa4f56800是个老问题了,通过history API更改url都无法获取,期待赶快解决

    2018-08-09
    有用
    回复

正在加载...

登录 后发表内容