<template>
<view class="content">
<web-view style="height: 600rpx;" :webview-styles='{height:600}'
src="http://www.baidu.com/"></web-view>
</view>
</template>
<script setup>
import {getCurrentInstance} from 'vue';
var wv; //计划创建的webview
const { ctx } = getCurrentInstance()
// #ifdef APP-PLUS
var currentWebview = ctx.$scope .$getAppWebview()
setTimeout(function() {
wv = currentWebview.children()[0]
wv.setStyle({
top: 150,
height: 300
})
wv.evalJS(`console.log("嵌入1111111")`);
}, 1000);
// #endif
</script>
- 发布:2023-07-22 18:58
- 更新:2024-03-31 20:33
- 阅读:968
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows 10- 21H2
HBuilderX类型: 正式
HBuilderX版本号: 3.8.7
手机系统: Android
手机系统版本号: Android 13
手机厂商: 小米
手机机型: k50 ultra
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
运行到安卓app基座
<template>
<view class="content">
<web-view style="height: 600rpx;" :webview-styles='{height:600}'
src="http://www.baidu.com/"></web-view>
</view>
</template>
<script setup>
import {getCurrentInstance} from 'vue';
var wv; //计划创建的webview
const { ctx } = getCurrentInstance()
// #ifdef APP-PLUS
var currentWebview = ctx.$scope .$getAppWebview()
setTimeout(function() {
wv = currentWebview.children()[0]
wv.setStyle({
top: 150,
height: 300
})
wv.evalJS(`console.log("嵌入1111111")`);
}, 1000);
// #endif
</script>
运行到安卓app基座
<template>
<view class="content">
<web-view style="height: 600rpx;" :webview-styles='{height:600}'
src="http://www.baidu.com/"></web-view>
</view>
</template>
<script setup>
import {getCurrentInstance} from 'vue';
var wv; //计划创建的webview
const { ctx } = getCurrentInstance()
// #ifdef APP-PLUS
var currentWebview = ctx.$scope .$getAppWebview()
setTimeout(function() {
wv = currentWebview.children()[0]
wv.setStyle({
top: 150,
height: 300
})
wv.evalJS(`console.log("嵌入1111111")`);
}, 1000);
// #endif
</script>
预期结果:
控制台输出:嵌入1111111
控制台输出:嵌入1111111
实际结果:
Uncaught ReferenceError: f is not defined at https://m.baidu.com/?from=844b&vit=fps:1
换其他网页也一样
Uncaught ReferenceError: f is not defined at https://m.baidu.com/?from=844b&vit=fps:1
换其他网页也一样
bug描述:
vue3 使用webview,使用setStyle可以 ,但使用evalJS报错,Uncaught ReferenceError: f is not defined at 。。。
复制我的代码,慢慢调试。
onReady() {
var currentWebview = this.$scope.$getAppWebview(); //获取当前页面的webview对象,此对象相当于html5plus里的plus.webview.currentWebview()
setTimeout(function() {
let webview = currentWebview.children()[0];
webview.evalJS(`alert(123)`);
}, 5000); //如果是页面初始化调用时,需要延时一下
},
喜欢技术的前端 - QQ---445849201
vue3 中 可以参考
<script setup>
import {onMounted,getCurrentInstance} from 'vue';
var wv; //计划创建的webview
const {ctx} = getCurrentInstance()
onMounted(() => {
setTimeout(() => {
var currentWebview = ctx.$scope.$getAppWebview()
wv = currentWebview.children()[0]
wv.evalJS("alert(123)")
}, 1000)
});
</script>
北陌 (作者)
没有
2023-08-24 15:46