uni-app nvue页面无法获取到页面里面的webview组件对象
uni-app nvue页面无法获取到页面里面的webview组件对象
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Mac | 10.16 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Mac
HBuilderX类型:正式
HBuilderX版本号:3.2.16
手机系统:iOS
手机系统版本号:iOS 15
手机厂商:苹果
手机机型:8p
页面类型:nvue
vue版本:vue2
打包方式:云端
示例代码:
<template>
<view class="dd">
<web-view id="test" ref='test' class="test" style="flex: 1;" :src="url"></web-view>
<view class="btnbox">
<!-- <view><text class="text">我是按钮栏</text></view> -->
<view class="textbox" @tap="save"><text class="text">保存到相册</text></view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
url: ''
}
},
methods: {
save() {
console.log(this.$refs.test);
var currentWebview = this.$scope.$getAppWebview();
console.log(currentWebview);
console.log(plus.webview.getDisplayWebview());
console.log(plus.webview.getWebviewById('7'))
console.log(plus.webview.all())
// plus.webview.all().map((res,i)=>{
// if(res.id != currentWebview.id){
// plus.webview.getWebviewById(res.id).hide();
// }
// })
// setTimeout(function() {
// let wv = currentWebview.children()[0]
// console.log(currentWebview.children())
// }, 1000);
return
// 截屏绘制
var bitmap = null;
bitmap = new plus.nativeObj.Bitmap('test');
// 将webview内容绘制到Bitmap对象中
ws.draw(bitmap, function() {
bitmap.save("_doc/drawScreen.jpg", {
overwrite: true
}, res => {
console.log(res.target); // 图片地址
uni.saveImageToPhotosAlbum({
filePath: res.target,
success: function() {
console.log('save success');
}
});
bitmap.clear(); // 清除Bitmap对象
}, error => {
console.log(JSON.stringify(error)); // 保存失败信息
bitmap.clear(); // 清除Bitmap对象
});
}, function(e) {
console.log('截屏绘制图片失败:' + JSON.stringify(e));
}, {
check: true, // 设置为检测白屏
clip: {
top: '0%',
left: '0px',
height: '50%',
width: '100%'
} // 设置截屏区域
});
}
},
onLoad(e) {
this.url = e.url
}
}
</script>
<style>
.dd {
flex: 1;
}
.btnbox {
background-color: #3184ff;
}
.textbox {
height: 80rppx;
justify-content: center;
align-items: center;
}
.text {
color: #FFFFFF;
}
</style>
操作步骤:
nvue页面无法获取到页面里面的webview组件对象
预期结果:
获取到页面里面的webview调用其plus api
实际结果:
页面无法获取到页面里面的webview组件对象
bug描述:
nvue 页面里面有webview组件
想获取页面里面的webview 组件调用他的plus API方法进行截图等操作
但是nvue页面无法获取到
通过this.$scope.$getAppWebview().children() 获取为[]
通过plus.webview.all()里面也没有包含放在nvue页面里面的webview,只有当前nvue页面的webview
由于布局要求需要nvue页面进行自行设置webview的高度,vue页面默认全屏因此无法达到效果
更多关于uni-app nvue页面无法获取到页面里面的webview组件对象的实战教程也可以访问 https://www.itying.com/category-93-b0.html
nvue 是 weex 页面并不是 5+ Webview,所以没有这些 API,可以尝试更换文件扩展名为 .vue
更多关于uni-app nvue页面无法获取到页面里面的webview组件对象的实战教程也可以访问 https://www.itying.com/category-93-b0.html
嗯嗯 只能这样了 谢谢