Files
my-h5/pages/other/taskDesc.vue

114 lines
2.4 KiB
Vue
Raw Normal View History

2025-09-26 14:50:30 +08:00
<template>
<view class="view-page">
<view class="image">
<img src="/static/image/task/rule.png" alt="" />
</view>
<view class="dec-view" style="background-color: transparent !important;">
<web-view :style="{ backgroundColor: 'transparent' }" :webview-styles="webviewStyles"
:src="`${httpUrl}/api/Page/page_show?id=17`"></web-view>
</view>
</view>
</template>
<script>
import config from '@/until/config.js';
export default {
data() {
return {
httpUrl: null,
// 关键配置:设置 WebView 样式
webviewStyles: {
progress: {
color: 'transparent' // 隐藏进度条
},
// 安卓专用配置
android: {
hardwareAccelerated: true, // 开启硬件加速
backgroundColor: 'transparent'
},
// iOS 专用配置
ios: {
allowsInlineMediaPlayback: true,
backgroundColor: 'transparent'
}
}
}
},
onLoad() {
this.httpUrl = config.BASE_URL
},
onReady() {
// #ifdef APP-PLUS
// 获取 WebView 实例进行原生设置
const pages = getCurrentPages();
const page = pages[pages.length - 1];
const currentWebview = page.$getAppWebview();
setTimeout(() => {
const webview = currentWebview.children()[0];
// 安卓原生设置
// #ifdef APP-ANDROID
webview.setStyle({
background: 'transparent'
});
// #endif
// iOS 原生设置
// #ifdef APP-IOS
webview.setStyle({
opaque: false
});
// #endif
}, 300); // 延迟确保 WebView 加载完成
// #endif
}
}
</script>
<style scoped lang="scss">
::-webkit-scrollbar {
display: none !important;
}
/* 重要:设置页面背景透明 */
page {
background-color: transparent !important;
}
/* 隐藏 WebView 默认容器背景 */
uni-web-view>div {
background-color: transparent !important;
}
.view-page {
font-family: Source Han Sans CN, Source Han Sans CN;
min-width: calc(100% - 40rpx);
padding: 0 20rpx;
height: 100vh;
overflow: hidden;
background-color: transparent !important;
margin: 0 auto;
position: relative;
.image {
width: calc(100% - 40rpx);
// min-height: 100vh;
position: absolute;
top: 0;
left: 20rpx;
right: 20rpx;
// bottom: 0;
}
.dec-view {
width: calc(100% - 40rpx - 48rpx);
min-height: calc(60% - 48rpx);
position: absolute;
top: 33%;
border-radius: 16rpx;
padding: 24rpx;
}
}
</style>