123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- <script>
- export default {
- onLaunch: async function() {
- // #ifdef APP-PLUS
- this.getQuanxian(); // 查询是否开启通知
- // #endif
- },
- onShow: function() {},
- onHide: function() {},
- methods: {
- getQuanxian() {
- let platform = uni.getSystemInfoSync().platform; //首先判断app是安卓还是ios
- console.log(platform);
- if (platform == "ios") { //这里是ios的方法
- console.log("我是iOS");
- var UIApplication = plus.ios.import("UIApplication");
- var app = UIApplication.sharedApplication();
- var enabledTypes = 0;
- if (app.currentUserNotificationSettings) {
- var settings = app.currentUserNotificationSettings();
- enabledTypes = settings.plusGetAttribute("types");
- console.log("enabledTypes1:" + enabledTypes);
- if (enabledTypes == 0) { //如果enabledTypes = 0 就是通知权限没有开启
- uni.showModal({
- title: '提示',
- content: '请打开通知权限',
- success: res => {
- if (res.confirm) {
- this.openTongZhi()
- } else if (res.cancel) {
- console.log('用户点击取消');
- }
- }
- });
- } else {
- // uni.showToast({
- // title: "通知权限已开启",
- // icon: "none"
- // })
- }
- }
- plus.ios.deleteObject(settings);
- } else if (platform == "android") { //下面是安卓的方法
- // console.log("我是安卓", plus.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"
- );
- }
- var areNotificationsEnabled =
- NotificationManagerCompat.from(main).areNotificationsEnabled();
- // console.log(areNotificationsEnabled);
- // 未开通‘允许通知’权限,则弹窗提醒开通,并点击确认后,跳转到系统设置页面进行设置
- if (!areNotificationsEnabled) {
- this.tongzhi = true; //这里也一样未开启权限,弹出弹窗
- }
- if (areNotificationsEnabled) {
- // uni.showToast({
- // title: "通知权限已开启",
- // icon: "none"
- // })
- } else {
- uni.showModal({
- title: '提示',
- content: '是否前往打开通知权限',
- success: res => {
- if (res.confirm) {
- this.openTongZhi()
- } else if (res.cancel) {
- console.log('用户点击取消');
- }
- }
- });
- }
- }
- },
- openTongZhi() { //弹窗按钮绑定方法
- let platform = uni.getSystemInfoSync().platform; //获取安卓还是ios
- if (platform == "ios") { //如果机型是ios,ios由于权限问题,可能需要手动开启
- var UIApplication = plus.ios.import("UIApplication");
- var app = UIApplication.sharedApplication();
- var settings = app.currentUserNotificationSettings();
- enabledTypes = settings.plusGetAttribute("types");
- var NSURL2 = plus.ios.import("NSURL");
- var setting2 = NSURL2.URLWithString("app-settings:");
- var application2 = UIApplication.sharedApplication();
- application2.openURL(setting2);
- plus.ios.deleteObject(setting2);
- plus.ios.deleteObject(NSURL2);
- plus.ios.deleteObject(application2);
- plus.ios.deleteObject(settings);
- } else if (platform == "android") { //如果机型是安卓
- var main = plus.android.runtimeMainActivity();
- var pkName = main.getPackageName();
- var uid = main.getApplicationInfo().plusGetAttribute("uid");
- 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);
- }
- },
- }
- }
- </script>
- <style>
- /*每个页面公共css */
- </style>
|