微信小程序在非Tabbar页面设置提示点

Posted HackShendi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序在非Tabbar页面设置提示点相关的知识,希望对你有一定的参考价值。

Hello,I‘m Shendi

记录一下微信小程序设置 tabbar 的流程

设置 tabbar 提示点

wx.setTabBarBadge(
	index: tabbar的下标,
	text: 提示内容
);

只能在 tabbar 页面调用设置

当用户在非 tabbar 页面调用则会报错

这不能满足一些需求
例如消息聊天等(在聊天页面-非 tabbar 页面,接收到消息则无法设置提示点)

在非 Tabbar 页面设置提示点

思路:

我们可以在要设置提示点的时候判断当前页面是否为 tabbar 页面
如果不是则存入缓存,当 tabbar 页面显示时进行设置

目前没有在 api 中找到判断当前页面是否为 tabbar 页面的函数
于是我的实现方法为在每个 tabbar 页面的显示和隐藏中设置...

进行了封装,代码如下

app.js(全局js)

App(
	/** 当前页面是否为 tabbar 页面 */
	isTabbarPage : false,
	
	/** 当 tabbar 页面显示时调用,需在每个 tabbar 页面的 onShow 中手动调用 */
	onTabbarShow : function () 
		this.isTabbarPage = true;
		
    	// 从缓存中拿到未设置的小点数进行设置,缓存为数组
    	// 其中每一个下标代表tabbar的位置,内容为数量
		var tabbarBadge = wx.getStorageSync('tabbarBadge');
		if (tabbarBadge) 
			for (var i = 0; i < 5; i++) 
				var val = tabbarBadge[i];
				if (val != null && val != 0) 
	          		wx.setTabBarBadge(
	            		index: i,
	            		text: val + ''
	          		);
	          		tabbarBadge[i] = null;
				
			
			wx.setStorageSync('tabbarBadge', tabbarBadge);
    	
	,
	/** 当 tabbar 页面隐藏时调用,需在每个 tabbar 页面的 onHide 中手动调用 */
	onTabbarHide : function () 
    	this.isTabbarPage = false;
	
);

其他所有 tabbar 页面

var app = getApp();
Page(
	onShow: function () 
    	app.onTabbarShow();
   	,
   	onHide : function () 
   		app.onTabbarHide();
   	
);

在需要设置的地方

var app = getApp();

if (app.isTabbarPage) 
    wx.setTabBarBadge(
        index: tabbar下标 第一个为0,
        text:);
 else 
    var tabbarBadge = wx.getStorageSync('tabbarBadge');
    if (!tabbarBadge) tabbarBadge = [];
    tabbarBadge[tabbar下标] =;
    wx.setStorageSync('tabbarBadge', tabbarBadge);

以上是关于微信小程序在非Tabbar页面设置提示点的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序自定义Tabbar,附详细源码

微信小程序中tabBar与导航API的页面跳转处理关系

微信小程序开发,导航栏右边的按钮怎么设置

微信小程序--页面的生命周期和参数传递

微信小程序页面跳转的问题(app.json中设置tarBar后wx.redirectTo和wx.navigateTo均不能实现跳转到指定的页面)

类似tabBar的切换页面效果(微信小程序)