从安卓转做mui也快一年,其中踩了无数的坑,其中样式最让人头疼。。。。以上属吐槽,进入正文。
这次是公司提出需求,想在应用的快捷方式上显示角标,然后去MUi官网看下文档,安卓目前只支持MIUI v5。。。。
然后网上各种找资料,找到一个觉得可行的方案:点我链接
只是看了https://github.com/leolin310148/ShortcutBadger的更新日志和源码发现小米的数字角标有点问题,然后修改如下:
ShortcutBadger.java里面的:
static {
BADGERS.add(AdwHomeBadger.class);
BADGERS.add(ApexHomeBadger.class);
BADGERS.add(DefaultBadger.class);
BADGERS.add(NewHtcHomeBadger.class);
BADGERS.add(NovaHomeBadger.class);
BADGERS.add(SonyHomeBadger.class);
BADGERS.add(AsusHomeBadger.class);
BADGERS.add(HuaweiHomeBadger.class);
BADGERS.add(OPPOHomeBader.class);
BADGERS.add(SamsungHomeBadger.class);
BADGERS.add(ZukHomeBadger.class);
BADGERS.add(VivoHomeBadger.class);
BADGERS.add(ZTEHomeBadger.class);
BADGERS.add(XiaomiHomeBadger.class);
BADGERS.add(LGHomeBadger.class);
BADGERS.add(EverythingMeHomeBadger.class);
}
底部代码找到:
也是增加小米和LG。
if (sShortcutBadger == null) {
if (Build.MANUFACTURER.equalsIgnoreCase("ZUK"))
sShortcutBadger = new ZukHomeBadger();
else if (Build.MANUFACTURER.equalsIgnoreCase("OPPO"))
sShortcutBadger = new OPPOHomeBader();
else if (Build.MANUFACTURER.equalsIgnoreCase("VIVO"))
sShortcutBadger = new VivoHomeBadger();
else if (Build.MANUFACTURER.equalsIgnoreCase("ZTE"))
sShortcutBadger = new ZTEHomeBadger();
else if (Build.MANUFACTURER.equalsIgnoreCase("Xiaomi"))
sShortcutBadger = new XiaomiHomeBadger();
else if (Build.MANUFACTURER.equalsIgnoreCase("LG"))
sShortcutBadger = new LGHomeBadger();
else
sShortcutBadger = new DefaultBadger();
}
如果不想自己去生成jar包,可以去下载:点我去下载
注意:经过2018/11/08用户寄过来的小米max3测试,源码上改动的代码会造成闪退,目前没有找到兼容小米max3的方案。因为github上那个开源项目如果不使用XiaomiHomeBadger类而使用DefaultBadger类,手上的测试机小米4c和max3是不能正常显示角标的。
然后把生成的jar包放到离线打包的lib文件夹里,mui中测试使用:
var ShortcutBadger = plus.android.importClass("me.leolin.shortcutbadger.ShortcutBadger");
var context = plus.android.runtimeMainActivity();
ShortcutBadger.applyCount(context, 99);
下一步准备接推送,看到官网有个推模块,等下去看下。
然后在使用中,自己手机小米max,MIUI的版本是9.5,发现默认把公司应用收到不重要通知里面,然后数字角标也没有显示,测试发现要去设置里的更多应用找到自己的应用,打开通知管理把是否设为重要改为:设为重要。角标就有显示了,这应该是跟小米MIUI 6上重新设计了桌面app图标的角标显示的基本规则有关,没去研究。
因为手机原因,暂时手里只有华为和小米,其他机型没有具体测试,不知道有没有其他问题。
不写了,搬砖去。
2 个评论
要回复文章请先登录或注册
高风
4***@qq.com (作者)