webview动态传参问题

发布于 8 年前作者 aqian12237 次浏览最后编辑 8 年前来自 ask

通过另一个页面navigate传递过来的参数在onload中用options接受后再动态修改webview跳转的路径,发现为空,若直接写死设置则可以,不知道是不是很奇怪的bug

代码如下:

 这里是另一个页面往webview跳转的方法
wx.navigateTo({
      url: '../webview/webview?courseno=' + wxcourseId + '&p=' + wxcoursep
    })
这里是页面加载的生命周期函数
onLoad: function (options) {
   console.log(Number(options.courseno) === 1555, this.data)
//如果不写Number(options.courseno),而直接写1555,就是可以的
   this.setData({
     "courseno": Number(options.courseno),//即这里必须写死,不能从options中取
     "p": Number(options.p)
   })
 },
"webview" src="https://yoururl/?courseno={{courseno}}&p={{p}}">

这是页面webview的标签,因为想动态传递过来,而不想写死,求大神指教

9 回复
min91
min911 楼6 年前

Number(options.courseno)放在外边定义一个变量试试:var courseno = Number(options.courseno),然后set赋值

guiying10
guiying102 楼6 年前

不是,问题就是webview的src中变量有时候带不过去,怀疑和onLoad的生命周期和web-view跳转的先后顺序不稳定有关。所以我直接把整个src作为一个变量了,而不是单个的courseno和p,

即webview的标签:

<web-view src="https://yoururl/?courseno={{courseno}}&p={{p}}"></web-view>

变成了

<web-view id="webview" src="{{websrc}}"></web-view>

这样onLoad那边setData没好,它就不会跳转。就不会出现参数带不过去的情况了

guchao
guchao3 楼6 年前

@ ,你这边具体的代码能说下吗,我也遇到类似问题是,传入4个及以下参数H5正常请求接口,H5页面数据正常push。

传入4个以上H5页面直接加载不出来

oluo
oluo4 楼6 年前

又多试了几次,在模拟器里是有时可以有时不行,不知道真机怎么样,

nbai
nbai5 楼6 年前

是参数格式问题吗?

mjia
mjia6 楼6 年前

老哥,你这个参数改变之后会不会出现点两次放回才能返回到上一级页面的问题

bzhang
bzhang7 楼6 年前

多谢大家了,感觉已经解决了,写法问题不大,经测试,模拟器上不灵敏,真机上会出现视频加载需要重试的情况

jun92
jun928 楼6 年前

onShow里无法获取wx.navigator的参数吧?我试试

pingxiang
pingxiang9 楼6 年前

放在onShow试试看