uni-app开启消息通知
<p>场景:uni-app开启移动app,如果用户没开启消息通知提示开启<br>因为uni-app升级到androidx,之前的android.support.v4.app.NotificationManagerCompat 已经找不到了,androidx中采用androidx.core.app.NotificationManagerCompat</p><p>判断是否开启了消息通知</p>
<p> </p>
<p>var main = plus.android.runtimeMainActivity();<br>var pkName = main.getPackageName();<br>var NotificationManagerCompat = plus.android.importClass(<br> "androidx.core.app.NotificationManagerCompat");<br>console.log(NotificationManagerCompat)<br>var isEnabled = NotificationManagerCompat.from(main).areNotificationsEnabled();<br>//手机没有开启通知的权限<br>if (!isEnabled) {<br> try{<br> console.log("===================")<br> //这里写打开弹窗的逻辑,提示用户去开启<br> <br> }catch(e){<br> console.log("------------------")<br> console.log(e)<br> }<br>}</p>
<p> </p>
<h4>当用户确定,调用如下代码,指导用户去开启消息通知</h4>
<p>main = plus.android.runtimeMainActivity();<br>pkName = main.getPackageName();<br>uid = main.getApplicationInfo().plusGetAttribute("uid");<br>Intent = plus.android.importClass('android.content.Intent');<br>Build = plus.android.importClass("android.os.Build");</p>
<p>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> var Settings = plus.android.importClass("android.provider.Settings");<br> var Uri = plus.android.importClass("android.net.Uri");<br> var intent = new Intent();<br> intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);<br> var uri = Uri.fromParts("package", main.getPackageName(), null);<br> intent.setData(uri);<br>}<br>// 跳转到该应用的系统通知设置页<br>main.startActivity(intent);<br><br>原文链接:https://blog.csdn.net/weixin_38417148/article/details/121518055</p><br><br>
来源:https://www.cnblogs.com/Dasate/p/17478312.html
頁:
[1]