uni-app web-view组件显示空白问题

发布于 1周前 作者 htzhanglong 来自 Uni-App

uni-app web-view组件显示空白问题

示例代码:

<u-popup :show="showWeb" @close="close">
<view style="height: 1200upx;">
<web-view src="https://uniapp.dcloud.io/static/web-view.html" class="flex-1" style="width:100%;height: 100%;"></web-view>
</view>
</u-popup>

操作步骤:

<u-popup :show="showWeb" @close="close">
<view style="height: 1200upx;">
<web-view src="https://uniapp.dcloud.io/static/web-view.html" class="flex-1" style="width:100%;height: 100%;"></web-view>
</view>
</u-popup>

预期结果:

正常显示webview

实际结果:

web-view空白

bug描述:

u-popup嵌套web-view 错位

Image

信息 描述
产品分类 uniapp/H5
PC开发环境 Windows
PC开发环境版本 win11
HBuilderX类型 正式
HBuilderX版本 4.24
浏览器平台 Chrome
浏览器版本 128.0.6613.113
项目创建方式 HBuilderX

2 回复

被popup覆盖了吧,,popup的层级10000多,iframe是默认的,被popup覆盖了


在uni-app中使用web-view组件时,如果遇到显示空白的问题,通常可能是由于多种原因导致的,比如页面URL不正确、页面加载错误、跨域问题等。以下是一些可能帮助你排查和解决这个问题的代码案例和步骤。

1. 检查web-view组件的URL

首先确保你传递给web-view组件的src属性是正确的URL。以下是一个基本的web-view使用示例:

<template>
  <view>
    <web-view :src="webViewUrl"></web-view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      webViewUrl: 'https://www.example.com'  // 确保URL正确无误
    };
  }
};
</script>

2. 使用本地HTML文件测试

如果外部URL无法加载,尝试使用本地HTML文件测试web-view是否正常工作:

<template>
  <view>
    <web-view :src="localHtmlPath"></web-view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      localHtmlPath: '/static/test.html'  // 本地HTML文件路径
    };
  }
};
</script>

确保test.html文件已正确放置在项目的static目录下。

3. 监听加载事件

通过监听web-viewloaded事件,可以获取更多关于加载状态的信息:

<template>
  <view>
    <web-view :src="webViewUrl" @loaded="onLoaded" @error="onError"></web-view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      webViewUrl: 'https://www.example.com'
    };
  },
  methods: {
    onLoaded() {
      console.log('Web-view loaded successfully');
    },
    onError(e) {
      console.error('Web-view error:', e);
    }
  }
};
</script>

4. 检查跨域问题

如果web-view加载的是外部网页,确保该网页允许跨域请求。有时候,服务器端的CORS(跨源资源共享)策略可能会阻止加载。

5. 调试和日志

如果以上步骤都不能解决问题,可以尝试在开发者工具中查看控制台日志,查找可能的错误信息。此外,使用网络请求拦截工具(如Fiddler或Charles)来监控web-view发出的请求和响应,可能会帮助你发现问题的根源。

通过结合以上方法,你应该能够定位并解决uni-app中web-view组件显示空白的问题。如果问题依旧存在,可能需要更详细地检查网络环境或服务器配置。

回到顶部