lgsh10086
lgsh10086
  • 发布:2019-07-15 09:45
  • 更新:2019-07-16 08:35
  • 阅读:980

升级正式版新版以后,动态修改了导航栏按钮,导致点击事件无效

分类:uni-app

使用到了定位,需要动态的设置导航栏位置信息,因此使用代码如图

2019-07-15 09:45 负责人:无 分享
已邀请:
DCloud_heavensoft

DCloud_heavensoft

iOS还是Android?os版本多少?
代码用markdown源码,别用截图

  • lgsh10086 (作者)

    在安卓上监听事件无效,在ios上可以监听,但是调用uni.chooselocation 是白的,无法获取到的位置信息

    2019-07-15 10:05

lgsh10086

lgsh10086 (作者)

onLoad() {  
            let self = this;  
            let pages = getCurrentPages();  
            let page = pages[pages.length - 1];  
            let currentWebview = page.$getAppWebview();  
            let titleObj = currentWebview.getStyle().titleNView;  
            let btn = titleObj.buttons[0];  
            console.log(btn)  
            //如果没有获取到位置信息,则每300毫秒重试一次  
            let interval = setInterval(() => {  
                if (self.currentPosition) {  

                    //开始下拉刷新加载数据  
                    uni.startPullDownRefresh({});  
                    //修改导航栏地址  
                    btn.text = this.currentPosition.address.city;  
                    currentWebview.setStyle({  
                        titleNView:{  
                            "buttons":[btn],  
                        }  
                    })  
                    // currentWebview.setTitleNViewButtonStyle(0, btn[0]);  
                    self.initCity = this.currentPosition.address.city;  
                    if (interval) {  
                        clearInterval(interval)  
                    }  
                } else {  
                    self.$store.dispatch("mapPosition/reInitLocation");  
                }  
            }, 300);  

        },
DCloud_heavensoft

DCloud_heavensoft

你的代码也没写是哪段代码无效了,不过不管怎么样,你的代码写的不合理,不应该用webview.setStyle,那改的东西太多,要用titleObj,参考https://ask.dcloud.net.cn/article/35374

  • lgsh10086 (作者)

    这里面我有注释掉掉一段代码 就是titleobj啊 依然无效,我干脆写完整掉button按钮样式试试吧

    2019-07-16 09:35

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