IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> uniapp-h5+获取通知栏权限 -> 正文阅读

[移动开发]uniapp-h5+获取通知栏权限

需求:控制消息栏的消息打开和关闭

控制消息栏的消息打开和关闭就需要获取手机系统,还有手机通知栏的打开情况

第一步我们先获取手机的系统,根据系统然后获取通知栏打开的状态

if (plus.os.name == 'Android') {//判断是否是安卓系统
    var main = plus.android.runtimeMainActivity();
	var pkName = main.getPackageName();
	var uid = main.getApplicationInfo().plusGetAttribute("uid");
	var NotificationManagerCompat = plus.android.importClass("android.support.v4.app.NotificationManagerCompat");
	//android.support.v4升级为androidx
	if (NotificationManagerCompat == null) {
		NotificationManagerCompat = plus.android.importClass("androidx.core.app.NotificationManagerCompat");
	}
    //areNotificationsEnabled 保存安卓通知栏打开的状态返回值为true或false
	var areNotificationsEnabled = NotificationManagerCompat.from(main).areNotificationsEnabled();

}
else{
    var isOn = undefined;
	var types = 0;
	var app = plus.ios.invoke('UIApplication', 'sharedApplication');
	var settings = plus.ios.invoke(app, 'currentUserNotificationSettings');
	if (settings) {
		types = settings.plusGetAttribute('types');
		plus.ios.deleteObject(settings);
	} else {
		types = plus.ios.invoke(app, 'enabledRemoteNotificationTypes');
	}
	plus.ios.deleteObject(app);
    //isOn 保存苹果通知栏打开的状态返回值为true或false
    isOn = (0 != types);
}

第二步再根据返回的状态来打开通知栏

//安卓打开对应的通知栏
uni.showModal({
	title: '通知权限开启提醒',
	content: '您还没有开启通知权限,无法接受到消息通知,请前往设置!',
	showCancel: false,
	confirmText: '去设置',
	success: function(res) {
		if (res.confirm) {
		    var Intent = plus.android.importClass('android.content.Intent');
			var Build = plus.android.importClass("android.os.Build");
			//android 8.0引导  
			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)其他--跳转到该应用管理的详情页  
				intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
				var uri = Uri.fromParts("package", mainActivity.getPackageName(), null);
				intent.setData(uri);
			}
		    // 跳转到该应用的系统通知设置页  
		    main.startActivity(intent);
		}
	}
});
//苹果打开对应的通知栏
uni.showModal({
	title: '通知权限开启提醒',
	content: '您还没有开启通知权限,无法接受到消息通知,请前往设置!',
	showCancel: false,
	confirmText: '去设置',
	success: function(res) {
		if (res.confirm) {
			var app = plus.ios.invoke('UIApplication', 'sharedApplication');
			var setting = plus.ios.invoke('NSURL', 'URLWithString:', 'app-settings:');
			plus.ios.invoke(app, 'openURL:', setting);
			plus.ios.deleteObject(setting);
			plus.ios.deleteObject(app);
		}
	}
});

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-11-10 12:30:55  更:2021-11-10 12:31:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:03:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码