uni-app 【报Bug】uni ui的fab按钮无法悬浮在nvue的plus.webview上面
uni-app 【报Bug】uni ui的fab按钮无法悬浮在nvue的plus.webview上面
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | Win10 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
PC开发环境操作系统版本号:Win10
HBuilderX类型:正式
HBuilderX版本号:3.0.7
手机系统:Android
手机系统版本号:Android 7.0
手机厂商:模拟器
手机机型:Mumu模拟器
页面类型:nvue
打包方式:离线
项目创建方式:HBuilderX
### 示例代码:
```javascript
<template>
<view>
<uni-fab></uni-fab>
</view>
</template>
<script>
import uniFab from '@/components/uni-fab/uni-fab.vue'
export default {
components: {
uniFab
},
onLoad() {
const systemInfo = uni.getSystemInfoSync()
// plus.webview.open('https://dcloud.io/', {width: systemInfo.safeArea.width, height: systemInfo.safeArea.height})
}
}
</script>
操作步骤:
原帖:https://ask.dcloud.net.cn/question/116081
bug:@DCloud_heavensoft
代码如下:
<template>
<view>
<uni-fab></uni-fab>
</view>
</template>
<script>
import uniFab from '@/components/uni-fab/uni-fab.vue'
export default {
components: {
uniFab
},
onLoad() {
const systemInfo = uni.getSystemInfoSync()
// plus.webview.open('https://dcloud.io/', {width: systemInfo.safeArea.width, height: systemInfo.safeArea.height})
}
}
</script>
注销掉plus.webview.open
时可以看到fab按钮
如果显示webview,则fab按钮被覆盖
### 预期结果:
fab覆盖在webview上
### 实际结果:
webview覆盖在fab上
更多关于uni-app 【报Bug】uni ui的fab按钮无法悬浮在nvue的plus.webview上面的实战教程也可以访问 https://www.itying.com/category-93-b0.html
不是bug。fab是前端组件,可以覆盖在同为组件的web-view上。
但用plus.webview方式创建的webview是另一个view,前端的fab肯定盖不住。
更多关于uni-app 【报Bug】uni ui的fab按钮无法悬浮在nvue的plus.webview上面的实战教程也可以访问 https://www.itying.com/category-93-b0.html
那要如何才能覆盖?
如何做个按钮去覆盖plus.webview并且有点击事件?
subNVUE能覆盖得了吗?
回复 MonikaChen: 可以
回复 DCloud_heavensoft: 多谢指点,我试试
回复 DCloud_heavensoft: 试了一下subNVue,还是会被plus.webview覆盖掉
回复 DCloud_heavensoft: 尝试用zindex解决,发现也是个bug,几年前有人提出过:https://ask.dcloud.net.cn/question/22817
回复 DCloud_heavensoft: 因为要拦截webview资源的加载,查了一下资料,貌似只有plus.webview能做到,<web-view>标签没给这个权限。同时需要右下角悬浮一个按钮作为功能键。如果实在不行,那交互就的更改成不用悬浮的,操作便捷度会差一些。我一度绝望到打算学安卓原生开发,哎
回复 MonikaChen: 熟悉了原生开发的确可以让你有更多的方法解决 uni-app 中的需求,不过即使你不熟悉原生开发也可以通过熟悉 5+API 来解决很多需求。比如使用 plus.nativeObj.View 来覆盖:先创建 webview,再创建 nativeView,然后 append 到 webview 上。
回复 DCloud_UNI_GSQ: plus.nativeObj.View是可以,无法用uniapp的组件,做界面会麻烦很多
这是一个已知的层级问题,在nvue页面中,plus.webview创建的webview会覆盖所有原生组件。这是由于Android系统的WebView实现机制决定的,原生WebView会始终显示在最上层。
解决方案:
- 使用5+ Webview的zindex属性(仅部分Android版本有效):
plus.webview.open(url, {
width: '100%',
height: '100%',
zindex: 1 // 尝试设置较低的zindex
});
- 改用uni-app的web-view组件替代plus.webview:
<template>
<view>
<web-view src="https://dcloud.io/"></web-view>
<uni-fab></uni-fab>
</view>
</template>