蓝莓安卓网多重安全检测下载网站、值得信赖的软件下载站!

当前位置: 蓝莓安卓网 >  教程 >  uniapp获取手机权限

uniapp获取手机权限 uniapp手机通知权限获取教程

时间:2023-11-10 16:33:47

小编:蓝莓安卓网

  在如今智能手机普及的时代,我们经常使用各种应用程序来满足不同的需求,有时候我们需要获取手机的某些权限,以便应用程序能够正常运行。而Uniapp作为一种跨平台的开发框架,为我们提供了一个便捷的方式来获取手机权限。本文将介绍如何在Uniapp中获取手机通知权限,并为大家提供详细的教程。无论你是初学者还是有一定开发经验的人,都能轻松掌握这个技巧。让我们一起来看看吧!

uniapp手机通知权限获取教程

uniapp获取手机权限 uniapp手机通知权限获取教程 目录获取通知权限跳转开启设置弹窗通知Tips:获取通知权限跳转开启

设置弹窗通知

首先我是设置了一个弹窗通知,具体样式就不在这里写了。可以自行写一个,我在这里就写一下具体获取以及跳转的代码

//首先我们需要一个触发,我是在进入页面onReady()生命周期中触发的检测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 就是通知权限没有开启                            this.tongzhi = true; //这里是我写的一个弹窗上面有一个跳转开启的按钮,自行添加即可                        }                    }                    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();                    // 未开通‘允许通知'权限,则弹窗提醒开通,并点击确认后,跳转到系统设置页面进行设置                    if (!areNotificationsEnabled) {                        this.tongzhi = true; //这里也一样未开启权限,弹出弹窗                    }                }            },

上面是根据手机操作系统来检测系统是否开启通知权限,下面代码是在检测没有开启通知权限后弹窗提示。然后点击弹窗按钮后到设置对应权限的页面跳转方法

Tips:

安卓手机由于系统新老版本不一样,开启权限的位置可能有所不同。需要根据实际情况来进行修改,ios由于权限问题有可能会跳转失败,需要手动开启

            //开启通知            openTongZhi() { //弹窗按钮绑定方法                let platform = uni.getSystemInfoSync().platform; //获取安卓还是ios                this.tongzhi = false;                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);                }            },

  以上是uniapp获取手机权限的全部内容,如果需要的用户可以按照以上步骤进行操作,希望对大家有所帮助。

相关文章

猜你喜欢

推荐游戏

更多