首页 > 其他分享 >uni-app开启消息通知

uni-app开启消息通知

时间:2023-06-13 17:48:16浏览次数:45  
标签:app 开启 intent plus var uni android main

场景:uni-app开启移动app,如果用户没开启消息通知提示开启
因为uni-app升级到androidx,之前的android.support.v4.app.NotificationManagerCompat 已经找不到了,androidx中采用androidx.core.app.NotificationManagerCompat

判断是否开启了消息通知

 

var main = plus.android.runtimeMainActivity();
var pkName = main.getPackageName();
var NotificationManagerCompat = plus.android.importClass(
"androidx.core.app.NotificationManagerCompat");
console.log(NotificationManagerCompat)
var isEnabled = NotificationManagerCompat.from(main).areNotificationsEnabled();
//手机没有开启通知的权限
if (!isEnabled) {
try{
console.log("===================")
//这里写打开弹窗的逻辑,提示用户去开启

}catch(e){
console.log("------------------")
console.log(e)
}
}

 

当用户确定,调用如下代码,指导用户去开启消息通知

main = plus.android.runtimeMainActivity();
pkName = main.getPackageName();
uid = main.getApplicationInfo().plusGetAttribute("uid");
Intent = plus.android.importClass('android.content.Intent');
Build = plus.android.importClass("android.os.Build");

if (Build.VERSION.SDK_INT >= 26) {
var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS');
intent.putExtra('android.provider.extra.APP_PACKAGE', pkName);
} else if (Build.VERSION.SDK_INT >= 21) { //android 5.0-7.0
var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS');
intent.putExtra("app_package", pkName);
intent.putExtra("app_uid", uid);
} else { //(<21)其他--跳转到该应用管理的详情页
var Settings = plus.android.importClass("android.provider.Settings");
var Uri = plus.android.importClass("android.net.Uri");
var intent = new Intent();
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
var uri = Uri.fromParts("package", main.getPackageName(), null);
intent.setData(uri);
}
// 跳转到该应用的系统通知设置页
main.startActivity(intent);

原文链接:https://blog.csdn.net/weixin_38417148/article/details/121518055

标签:app,开启,intent,plus,var,uni,android,main
From: https://www.cnblogs.com/Dasate/p/17478312.html

相关文章

  • 苹果自研Apple M1芯片对机器学习意味着什么?
    正文字数:3049 阅读时长:4分钟苹果在iPad和iPhone系列中首次推出了基于苹果A系列处理器的苹果硅片台式机/笔记本电脑处理器。他们推出了这一新的处理器的同时,也推出了三款新的Mac,包括新的M1MacBookAir、M1MacBookPro和M1Macmini。作者/ TommyShrovehttps://netflixtechbl......
  • HP 288G9 主机安装Esxi6.7报错Shutting down firmware services Using simple offset'
    ShuttingdownfirmwareservicesUsingsimpleoffset'UEFIRTSmappingpolicy找了好多方法都不行,尝试1:添加ignoreHeadless=TRUE参数也没救回我电脑,失败尝试2:BIOS中将PCI64bitResourcesHandling里的Above4GDecoding,找不到失败尝试3:PC主板里有一个设置选项叫CSM兼容性......
  • uniapp开发公众号H5时用户缓存无法清除问题
     业务场景:  此项目是一个vx公众号h5项目,每次更新版的时候用户端由于有缓存,每次都是使用滞后的版本解决方案:一、index.html文件如何保证不缓存,每次都使用服务器上最新的代码?此时需要一下标签:<metahttp-equiv="Cache-Control"content="no-cache,no-store,must-revali......
  • 直播软件app开发,vue里tab菜单横向展示,可分页功能组件实现
    直播软件app开发,vue里tab菜单横向展示,可分页功能组件实现子组件: <template><div>  <el-buttonv-if="move!=0&&!dataLen"size='small'icon="el-icon-arrow-left"@click="navPrev"></el-button>   <ulref......
  • K8S集群中开启firewalld 防火墙,防火墙策略配置
    在所有节点上执行#确保开启防火墙服务systemctlrestartfirewalld#将集群内所有的节点IP配置到防火墙可信区中firewall-cmd--permanent--zone=trusted--add-source=172.17.185.91firewall-cmd--permanent--zone=trusted--add-source=172.17.185.92firewall-cmd-......
  • Junit执行器Runner探索之旅
    单元测试是每个程序员必备的技能,而Runner是每个单元测试类必有属性。本文通过解读Junit源码,介绍junit中每个执行器的使用方法,让读者在单元测试时,可以灵活的使用Runner执行器。一、背景在今年的敏捷团队建设中,京东物流通过Suite执行器实现了一键自动化单元测试。Juint除了Suite执......
  • 音视频领域或将开启”外卷“之路
    如果说让我们聊一聊2021年音视频技术领域在这一年中的变化,莫不如从LiveVideoStackCon2021音视频技术大会上海站&北京站,这两场大会缩影来看。文 |Teresa虽然这两场大会的主题都是:「新技术、新机会」,但强调的重点却不相同。4月份的上海站的主旨明显落在“新”上。当疫情席卷......
  • Python如何把字符串中形如'\uXXXX'的Unicode字符转换为原始字符
    jsonpickle保存的文本有形如"\u6211\u7684"的字符,看起来很不方便,怎么转换为原始字符呢?参考如下代码:importjsonpickle#定义一个包含Unicode编码字符的字符串text="我的名字是\u674e\u5b87\u5b87"#将字符串保存为JSON格式json_string=jsonpickle.encode(text)......
  • 【Linux】CentOS防火墙操作:开启端口、开启、关闭、配置
    ......
  • appium2+Python3+红米手机k40 无法启动APP
    在网上一直找不到解决的方法,困扰了很久。OEM解锁权限和USB调试安全设置也打开试过了,还是不行。有懂的大佬吗!Python报错提示:Message:Anunknownserver-sideerroroccurredwhileprocessingthecommand.Originalerror:ErrorexecutingadbExec.Originalerror:'Command......