可以定义一个内部页面,就只放一个web-view,然后在列表点击的时候,跳转到该内部页面,并且把需要打开的链接传递到该页面。
<template>
<view class="history">
<view class="list">
<view
class="item"
v-for="(item, index) in list"
:key="index"
@click="itemClick(item)"
>
<view class="date">
{{item.title}}
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
list: []
}
},
methods: {
itemClick (data) {
// 跳转到内部窗口并且传递链接
uni.navigateTo({
url: `/pages/webview/webview?url=${data.link}`
})
}
},
created() {
//异步获取数据啦,没什么好说的
}
}
</script>
webview内部页面
<template>
<view>
<web-view :src="url"></web-view>
</view>
</template>
<script>
export default {
data() {
return {
url: ''
}
},
onLoad(e) {
// 获取传递过来的链接
this.url = e.url
}
}
</script>