李甜甜不甜
李甜甜不甜
  • 发布:2021-01-06 17:16
  • 更新:2023-11-23 16:13
  • 阅读:2650

onNavigationBarButtonTap监听不生效问题

分类:uni-app

首先,我先描述一下我的问题,我是安卓手机不生效,但是苹果没有任何问题
然后我在论坛上看了下相关帖子,原因总结有以下几个:
1、单位不能用upx;(但是我用的是px)
2、按钮要是放在pages.json下边的第一个文件那里,会不执行;(完蛋了呢,但是我必须要放在首页啊)
3、如果动态改变titleNView的值,会不执行 (我确实动态改变了text 的值)

然后我的解决办法是根据第3个原因解决的

pages.json代码
"app-plus":{
"titleNView":{
"buttons":[
{
"text":"\ue60c",
"fontSrc":"/static/iconfont.ttf",
"fontSize":"20px",
"redDot": false,
"color":"#FFFFFF"
}
]
}
}

原先写法:
var webView = this.$mp.page.$getAppWebview();
var tn = webView.getStyle().titleNView;
if(this.selectedItem.index!=0){
tn.buttons[0].text= "修改前";
tn.buttons[0].redDot = false;
}else{
tn.buttons[0].text= "修改后";
if(count>0){
tn.buttons[0].redDot = true;
}else{
tn.buttons[0].redDot = false;
}
}
webView.setStyle({
titleNView: tn
});

这样还是不能跳转,然后我换了一种写法,就可以了

var webView = this.$mp.page.$getAppWebview();
if(this.selectedItem.index!=0){
webView.setTitleNViewButtonStyle(0,{text:'修改前',redDot:false});
}else{
if(count>0){
webView.setTitleNViewButtonStyle(0,{text:'修改后',redDot:true});
}else{
webView.setTitleNViewButtonStyle(0,{text:'修改后F',redDot:false});
}
}
如果你们要实现按钮的显示隐藏,可以跟我一样用小技巧,隐藏的时候,把按钮的颜色设置成标题栏的背景颜色。。

1 关注 分享
1***@qq.com

要回复文章请先登录注册

l***@outlook.com

l***@outlook.com

还真的是哈,感谢楼主总结
2023-11-23 16:13
李甜甜不甜

李甜甜不甜 (作者)

回复 gfdgd :
我这个就是放在首页的啊
2021-07-01 10:38
gfdgd

gfdgd

那放在首页的要怎么办呀
2021-06-23 15:47
李甜甜不甜

李甜甜不甜 (作者)

回复 test_a :
哈哈哈,能帮上忙就好
2021-04-19 10:25
test_a

test_a

第三条我也遇到了,谢谢解答!
2021-03-17 14:19