收藏
回答

web-view转发分享的url的参数如何传递

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 需求 转发 web-view 工具 6.6.6 1.9.9

webview 转发出去的页面需要带一个参数,实际打开转发后的页面url中的并没有拿到参数。


转发后打印的pathvalue 的值:/pages/select_time?url=https://xxxxxx/redpacket/packet_frm2.html?no=sap-666666。真机打开转发后的页面弹出的window.location:https://xxxxxx/redpacket/packet_frm2.html。后面的参数没了。 请问一下参数是怎么带的,谢谢

最后一次编辑于  2018-06-05  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

2 个回答

  • 右。
    右。
    2018-06-05

    var url = 'http://www.baidu.com';

    你需要将URL编码:var encodeUrl = encodeURIComponent(url);

    跳转时:/pages/select_time?url=encodeUrl;

    在web-view页面:

    var url = decodeURIComponent(options.url);


    2018-06-05
    赞同 2
    回复 6
    • 星光衍生
      星光衍生
      2018-06-05

      解码的时候是在page的onload里吗,还是onLunch中呢

      2018-06-05
      回复
    • 星光衍生
      星光衍生
      2018-06-05

      我在进到select_time页面之前将url进行encodeURIComponent, 然后在select_time中onload里将url进行decodeURIComponent赋值给url了,最后转发的时候拿到当前url再进行encodeURIComponent, 拼接/pages/select_time?url= encodeUrl,最后转发出去的连接应该是这样格式的:/pages/select_time?url=https%3A%2F%2F XXXX packet_frm2.html%3Fno%3Dsap-666666。对吗,我这样的话分享出去的实际打开的时候是空白的。

      转发出去打开的话page会执行onload吗,我这边应该是转发出去的页面打开没有进行onload获取参数进行解码之类的操作。

      转发出去再打开的页面声明周期应该是没变的吧

      2018-06-05
      回复
    • 右。
      右。
      2018-06-05回复星光衍生

      生命周期应该是不会, 理论上会执行onload

      2018-06-05
      回复
    • 星光衍生
      星光衍生
      2018-06-05回复右。

      我试了一下分享非web-view页面的转发,打开转发后的页面onload和onshow方法都有触发,但是web-view页面里面转发后的页面打开好像并没有触发onload或者onshow···

      2018-06-05
      回复
    • 右。
      右。
      2018-06-05回复星光衍生

      web-view也是在page里放的组件吧,我感觉应该不会有差别。具体我也没实践。

      2018-06-05
      回复
    查看更多(1)
  • 长安
    长安
    2018-06-05

    在js里面封装好,拼接成一个带参的 url直接赋值给页面就好了啊

    2018-06-05
    赞同
    回复 3
    • 星光衍生
      星光衍生
      2018-06-05

      是在哪里封装呢,是在onload 里面把链接封装成参数吗

      2018-06-05
      回复
    • 长安
      长安
      2018-06-05




      就完了啊


      2018-06-05
      回复
    • 星光衍生
      星光衍生
      2018-06-05回复长安

      谢谢,找到原因了···QAQ

      2018-06-05
      回复