收藏
回答

使用web-view内嵌h5页面分享后,点击分享如何打开分享前的h5网页

问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 Bug web-view 微信iOS客户端 Android 6.6.5 1.9.91

问题是:使用web-view内嵌h5页面分享后,点击分享打开的不是分享时的h5网页

我的实现过程是:

一、分享时(已经没有问题)

我是在web-view中内嵌了h5网页,用户在h5网页中已经多次跳转了,分享时,我设置的链接地址是

onShareAppMessage: function (res) {
    return {
      ///res.webViewUrl这就是web-view中的网址
      title: 'XX小程序',
      desc: 'XX小程序',
      path: "/pages/index/index?url=" + res.webViewUrl
    }
  }

经过验证分享的地址是正确的,没有什么问题,关键是用户打开分享的小程序时,总是显示的是首页,不是当时分享的那个页面。

二、用户点击打开分享时(有问题)

用户打开分享页后,我的实现如下

data: {
    MY_HOME: "https://xxx.gov.cn/index.html",
  },

  onLoad: function (res) {

   //例如分享的地址是/pages/index/index?url=https://xxx.gov.cn/2.html

   //这里的res.url就是获取的是url的入口参数即https://xxx.gov.cn/2.html

   //经过验证获取的地址没有任何问题

    if (typeof (res.url) != "undefined") {

   //把https://xxx.gov.cn/2.html赋值给MY_HOME,并更新视图

    this.setData({MY_HOME: res.url});
    }
  },

视图的代码是

<!--index.wxml-->
<view class="container">
   <web-view src="{{MY_HOME}}"></web-view>
</view>

按说,用户点击分享的小程序/pages/index/index?url=https://xxx.gov.cn/2.html后,小程序在加载时获取到https://xxx.gov.cn/2.html地址,并把此地址改变到MY_HOME中,同时视图中的<web-view src="{{MY_HOME}}"></web-view>中的地址也立即改变,不就是实现了打开分享前的页面吗?

可实际是不是那么回事,

反复验证,就是this.setData({MY_HOME: res.url});这一句虽然把新网址设置进去了,但是前台<web-view src="{{MY_HOME}}"></web-view>此时并不是打开新网址,还是打开的

data: {
    MY_HOME: "https://xxx.gov.cn/index.html",
  },

中的那个网址,怎么办,谁帮帮我,问题在哪儿??


最后一次编辑于  2018-03-28  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

3 个回答

  • 小天🙂
    小天🙂
    2018-05-07

    mark

    2018-05-07
    赞同
    回复
  • aholy
    aholy
    2018-04-10

    mark

    2018-04-10
    赞同
    回复
  • You can you up
    You can you up
    2018-03-28
    if (typeof (res.url) != "undefined") {
       //把https://xxx.gov.cn/2.html赋值给MY_HOME,并更新视图
        this.setData({MY_HOME: res.url});

     }else{

    this.setData({MY_HOME: "https://xxx.gov.cn/index.html"});

    }


    把data里的MY_HOME删掉  这样可行么???

    2018-03-28
    赞同
    回复