短视频系统源码,让程序获得通知栏权限
短视频系统源码,让程序获得通知栏权限实现的相关代码
控制消息栏的消息打开和关闭就需要获取手机系统,还有手机通知栏的打开情况
第一步我们先获取手机的系统,根据系统然后获取通知栏打开的状态
1 | if (plus.os.name == 'Android' ) { //判断是否是安卓系统<br> var main = plus.android.runtimeMainActivity();<br>var pkName = main.getPackageName();<br>var uid = main.getApplicationInfo().plusGetAttribute("uid");<br>var NotificationManagerCompat = plus.android.importClass("android.support.v4.app.NotificationManagerCompat");<br>//android.support.v4升级为androidx<br>if (NotificationManagerCompat == null) {<br>NotificationManagerCompat = plus.android.importClass("androidx.core.app.NotificationManagerCompat");<br>}<br> //areNotificationsEnabled 保存安卓通知栏打开的状态返回值为true或false<br>var areNotificationsEnabled = NotificationManagerCompat.from(main).areNotificationsEnabled();<br> <br>}<br>else{<br> var isOn = undefined;<br>var types = 0;<br>var app = plus.ios.invoke('UIApplication', 'sharedApplication');<br>var settings = plus.ios.invoke(app, 'currentUserNotificationSettings');<br>if (settings) {<br>types = settings.plusGetAttribute('types');<br>plus.ios.deleteObject(settings);<br>} else {<br>types = plus.ios.invoke(app, 'enabledRemoteNotificationTypes');<br>}<br>plus.ios.deleteObject(app);<br> //isOn 保存苹果通知栏打开的状态返回值为true或false<br> isOn = (0 != types);<br>} |
第二步再根据返回的状态来打开通知栏
1 | //安卓打开对应的通知栏<br>uni.showModal({<br>title: '通知权限开启提醒',<br>content: '您还没有开启通知权限,无法接受到消息通知,请前往设置!',<br>showCancel: false,<br>confirmText: '去设置',<br>success: function(res) {<br>if (res.confirm) {<br> var Intent = plus.android.importClass('android.content.Intent');<br>var Build = plus.android.importClass("android.os.Build");<br>//android 8.0引导 <br>if (Build.VERSION.SDK_INT >= 26) {<br>var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS');<br>intent.putExtra('android.provider.extra.APP_PACKAGE', pkName);<br>} else if (Build.VERSION.SDK_INT >= 21) { //android 5.0-7.0 <br>var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS');<br> intent.putExtra("app_package", pkName);<br>intent.putExtra("app_uid", uid);<br>} else { //(<21)其他--跳转到该应用管理的详情页 <br>intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);<br>var uri = Uri.fromParts("package", mainActivity.getPackageName(), null);<br>intent.setData(uri);<br>}<br> // 跳转到该应用的系统通知设置页 <br> main.startActivity(intent);<br>}<br>}<br>});<br>//苹果打开对应的通知栏<br>uni.showModal({<br>title: '通知权限开启提醒',<br>content: '您还没有开启通知权限,无法接受到消息通知,请前往设置!',<br>showCancel: false,<br>confirmText: '去设置',<br>success: function(res) {<br>if (res.confirm) {<br>var app = plus.ios.invoke('UIApplication', 'sharedApplication');<br>var setting = plus.ios.invoke('NSURL', 'URLWithString:', 'app-settings:');<br>plus.ios.invoke(app, 'openURL:', setting);<br>plus.ios.deleteObject(setting);<br>plus.ios.deleteObject(app);<br>}<br>}<br>}); |
以上就是 短视频系统源码,让程序获得通知栏权限实现的相关代码,更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现