74 lines
1.9 KiB
Vue
74 lines
1.9 KiB
Vue
<template>
|
||
<view>
|
||
<web-view :src="url"></web-view>
|
||
</view>
|
||
</template>
|
||
|
||
<script setup>
|
||
import { ref,onMounted,getCurrentInstance } from 'vue';
|
||
import { onLoad,onReady } from '@dcloudio/uni-app';
|
||
const { proxy } = getCurrentInstance();
|
||
|
||
let windowInfo = ref(null);
|
||
let url = ref('');
|
||
let title = ref('');
|
||
//将要创建的webview对象
|
||
let wv;
|
||
onLoad(async(opt) => {
|
||
// console.log(opt)
|
||
url.value = opt.url;
|
||
title.value = opt.title;
|
||
|
||
})
|
||
|
||
onReady(()=>{
|
||
setTimeout(()=>{
|
||
uni.setNavigationBarTitle({
|
||
title:title.value
|
||
})
|
||
},2000)
|
||
})
|
||
|
||
onMounted(() => {
|
||
uni.getSystemInfo({
|
||
success: (res)=> {
|
||
windowInfo.value = res;
|
||
createWvAndLoadUrl(url.value);
|
||
}
|
||
});
|
||
})
|
||
|
||
/*创建web-view并加载url*/
|
||
const createWvAndLoadUrl=(url)=>{
|
||
// #ifdef APP-PLUS
|
||
wv = plus.webview.create(url,"webview",{
|
||
// plusrequire:"none", //禁止远程网页使用plus的API,有些使用mui制作的网页可能会监听plus.key,造成关闭页面混乱,可以通过这种方式禁止
|
||
top: 0,//this.windowInfo.statusBarHeight + 126, //放置在titleNView下方。如果还想在webview上方加个地址栏的什么的,可以继续降低TOP值
|
||
scalable: true,
|
||
height: windowInfo.value.windowHeight - windowInfo.value.statusBarHeight //- 126
|
||
})
|
||
wv.addEventListener('loading', () => {
|
||
plus.nativeUI.showWaiting("loading...",{
|
||
width:'110px',
|
||
padding:'10px'
|
||
})
|
||
}, false);
|
||
//plus.nativeUI.showWaiting()
|
||
wv.addEventListener('loaded', () => {
|
||
plus.nativeUI.closeWaiting();
|
||
}, false);
|
||
|
||
//wv.loadURL(url)
|
||
let currentWebview = proxy.$scope.$getAppWebview();
|
||
currentWebview = wv;
|
||
// console.log(wv)
|
||
// setTimeout(()=> {
|
||
// console.log(wv.getStyle())
|
||
// }, 1000);
|
||
// #endif
|
||
}
|
||
</script>
|
||
|
||
<style scoped>
|
||
|
||
</style> |