web-view传值bug???
发布于 6 年前 作者 hanjie 5386 次浏览 来自 问答

有一个新闻列表页面,点击某条新闻跳转到新闻详情页面,传参数id,有时正常有时id为空详情就加载不了,列表页面跳转到详情的js逻辑

godetail: function (event) {

   var aid = event.currentTarget.dataset.testid

   if(aid){

     wx.navigateTo({

       url: ‘…/my/detail?aid=’ + aid

   })

   }    }

详情页面 detail.html

<web-view src=https://testserver.com/Wxapp/Show/index/id/{{id}}”>web-view>

详情页面detail.js

const app = getApp()

Page({

 /** 页面的初始数据   */

 data: {

   id: ‘’

  },

   onLoad: function (option) {

       this.setData({

         id: option.aid

      })

   })

})

列表点击到详情,在返回到列表在点击进详情,反复进入详情页面,在详情webview加载的web页面上输出id的值有时就为空。感觉上像是先渲染加载了webview才执行的小程序页面onLoad方法。

这个问题有什么解决方法??? 急

5 回复

现在我是这么搞得,在详情页 detail.js 的初始化data中加了一个标识变量,id赋值时,标识变量改为true

const app = getApp()

Page({

 /** 页面的初始数据   */

 data: {

   id: ‘’,

    flag:false, // 标识变量

  },

    onLoad: function (option) {

        this.setData({

         id: option.aid,

          flag:true,

      })

    })

})

wxml页面这么写的,flag==true时才会去渲染页面

<view wx:if="{{flag}}">

 <web-view src=https://test.com/Wxapp/Show/index/id/{{id}}”></web-view>

</view>

<view style=“text-align:center;” wx:else>

 <image src=’…/common/images/timg.gif’ style=‘margin-top:40%;width:177px;height:175px;’></image>

</view>

比较笨的方法,虽然能保证每次详情页面能够有参数值,但是在列表页面跳转详情页面的时候中间有空白页面停顿的效果,体验不好。在详情页面,flag==false时有个loading提示的图片,不过基本没什么卵用,根本就不会看的这个loading就跳转过去了

楼上的,官方对于web-view 目前的文档显示,web-view 会自动铺满全屏,并覆盖其它组件,所以你下面的view其实是没有用的。

同问这个问题,是bug还是 微信web-view不支持传值的方式?

回到顶部