1***@qq.com
1***@qq.com
  • 发布:2019-04-12 11:38
  • 更新:2019-05-06 11:03
  • 阅读:2420

【报Bug】ios中plus.webview.currentWebview().append(这里是plus.nativeObj.View),无法超出底部原生导航高度的限制

分类:uni-app
iOS

详细问题描述

(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)
[内容]

var leftPos = Math.ceil((uni.getSystemInfoSync().windowWidth - 45) / 2);  
                var e = getCurrentPages(),  
                    a = e[e.length - 1],  
                    currentWebview  = a.$getAppWebview(),  
                    i = leftPos + 'px',  
                    s = new plus.nativeObj.View("", {  
                        bottom: "25px",  
                        left: i,  
                        height: "45px",  
                        width: "45px",  
                        backgroundColor: '#cccccc'  
                    }, [{  
                        tag: "img",  
                        id: "img",  
                        src: "/static/tabbar/publish.png",  
                        position: {  
                            top: "0px",  
                            left: "0px",  
                            width: "100%",  
                            height: "100%"  
                        }  
                    }]);  
                plus.webview.currentWebview().append(s);  
                s.addEventListener("click", function(e) {  
                    uni.switchTab({  
                        url: "/pages/3/3"  
                    })  
                })

重现步骤

[步骤] 底部凸起,安卓完好,ios凸起部分不显示
[结果]ios凸起部分也显示
[期望]
[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

[HBuilder 或 HBuilderX]
[IDE版本号]
[windows版本号]
[mac版本号]

uni-app运行环境说明

[运行端是h5或app或某个小程序]
[运行端版本号]

App运行环境说明

[Android版本号]
[iOS版本号]
[手机型号]
[模拟器型号]

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]
[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]
[App安装包或H5地址]
[可重现代码片段]

联系方式

[QQ]

2019-04-12 11:38 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com (作者) - 啦啦啦啦

安卓可以,ios不行,求助

DCloud_heavensoft

DCloud_heavensoft

tab凸起有现成的示例,看示例就好了。
这种情况不需要append

  • 1***@qq.com (作者)

    现成的案例那也是我写的啊!!!我想知道这个append在安卓端可以超出限制,为什么ios不能超出?

    2019-04-15 08:19

  • DCloud_heavensoft

    回复 1***@qq.com: 已经说过了,plus.webview.currentWebview().append(s); 这句话不应该存在。你那个凸起是要悬浮一个在上面,不是嵌入到某个webview里。

    2019-04-17 03:48

  • 1***@qq.com (作者)

    回复 DCloud_heavensoft:如果悬浮的话,进入新页面的时候有很明显的感觉,底部5个导航不是一起的,左右4个是一个从左到右边的动画,悬浮的那个跟不上这个底部导航的动画,所以用plus.webview.currentWebview().append(s);这种方式的话,安卓很完美啊,就是和底部导航到了一起,然后ios却不能超出底部导航高度的限制,这很明显是bug!

    2019-04-18 08:55

  • 1***@qq.com (作者)

    这个东西你们应该改一下ios层级问题就能实现(不懂ios,我猜的)

    2019-04-18 08:56

  • w***@qq.com

    回复 DCloud_heavensoft: 同样的问题,用示例的方法,在不需要tabar的页面,凸起的按钮还是依旧显示。用plus.webview.currentWebview().append(s),如果能解决ios上不能超出底部导航高度的限制的话那就完美了!!

    2019-04-26 10:41

DCloud_App_Array

DCloud_App_Array

通常子控件是不能超出父控件的范围的,凸起效果也不是超出父容器的,而是凸起部分外透明来实现的效果。
但从你提供的代码无法判断问题,请提供完整的重现问题示例应用。

  • 1***@qq.com (作者)

    已上传压缩文件,请检查

    2019-04-28 10:40

1***@qq.com

1***@qq.com (作者) - 啦啦啦啦

已上传测试包

1***@qq.com

1***@qq.com (作者) - 啦啦啦啦

这是我的手机截图
我测试了七八个安卓机都能显示!!!

我吃柠檬

我吃柠檬 - .....

plus.webview.currentWebview().append(centerButtonOnTab); 这行去掉你再试试

使用show()和hide()控制显示隐藏

  • 1***@qq.com (作者)

    兄弟,这个不同步,我写的是同步的,是和底部导航到一块了,而不是在最上面覆盖了一个

    2019-04-29 11:27

  • 我吃柠檬

    回复 1***@qq.com: http://ext.dcloud.net.cn/plugin?id=251

    2019-04-29 11:29

  • 1***@qq.com (作者)

    回复 我吃柠檬: 你这还是拿我的代码参考的!!

    2019-04-29 11:30

  • 我吃柠檬

    回复 1***@qq.com: 老哥,之前ios不显示图片我咨询过你,代码差不多就说我复制你的啊,你可以试试我的这个ios显不显示,你把plus.webview.currentWebview().append(centerButtonOnTab)去掉用show和hide显示隐藏试试

    2019-04-29 11:40

  • 1***@qq.com (作者)

    回复 我吃柠檬: 你最开始发布的插件我看过,注释都一模一样!!不想说啥

    2019-04-29 11:51

  • 1***@qq.com (作者)

    回复 1***@qq.com: 我现在的需求你那个是不一样的

    2019-04-29 11:53

DCloud_IOS_XTY

DCloud_IOS_XTY

@DCloud_UNI_Trust 看一下

8***@qq.com

8***@qq.com

请问有解决吗,遇到同样的问题,现在是show和hide勉强使用但是体验很差,但是在mui那一套是正常的

  • 1***@qq.com (作者)

    没解决,官方说会改,但是不知道什么时候了

    2019-05-06 10:23

w***@qq.com

w***@qq.com

if (plus.os.name == "iOS") {  
                    var centerButtonOnTab2 = new plus.nativeObj.View("",{  
                        bottom: '-26px',  
                        left:  leftPos+'px',  
                        height:'58px',  
                        width:'58px',  
                        },  
                        [{tag:'img',id:'img',src:'_www/static/tab2.png',position:{top:'0px',left:'0px',width:'58px',height:'58px'}}  
                        ]);   
                        var pages = getCurrentPages();  
                        var page = pages[pages.length - 1];  
                        // #ifdef APP-PLUS  
                        var currentWebview = page.$getAppWebview();  
                        currentWebview.append(centerButtonOnTab2);   
                        // #endif  
}

目前我用上面的方法补上了ios上缺失的那部分凸起图案(每个tabbar页面都需要添加),但这只是个障眼法。不过个人觉得体验比show和hide好多了。

  • 8***@qq.com

    兄嘚666啊,目前来看效果还不错

    2019-05-11 18:24

该问题目前已经被锁定, 无法添加新回复