欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

uniapp獲取手機(jī)通知權(quán)限實(shí)現(xiàn)demo

 更新時(shí)間:2023年07月10日 10:41:06   作者:小李不小  
這篇文章主要為大家介紹了uniapp獲取手機(jī)通知權(quán)限實(shí)現(xiàn)demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

獲取通知權(quán)限跳轉(zhuǎn)開(kāi)啟

之前發(fā)了一篇使用插件市場(chǎng)獲取權(quán)限的文章,但是有兄弟想要一個(gè)單獨(dú)開(kāi)啟通知權(quán)限的教程,這篇文章特意整理一下獲取通知權(quán)限跳轉(zhuǎn)開(kāi)啟的方法

設(shè)置彈窗通知

首先我是設(shè)置了一個(gè)彈窗通知,具體樣式就不在這里寫了,可以自行寫一個(gè),我在這里就寫一下具體獲取以及跳轉(zhuǎn)的代碼

//首先我們需要一個(gè)觸發(fā),我是在進(jìn)入頁(yè)面onReady()生命周期中觸發(fā)的檢測(cè)
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 就是通知權(quán)限沒(méi)有開(kāi)啟
                            this.tongzhi = true; //這里是我寫的一個(gè)彈窗上面有一個(gè)跳轉(zhuǎn)開(kāi)啟的按鈕,自行添加即可
                        }
                    }
                    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升級(jí)為androidx
                    if (NotificationManagerCompat == null) {
                        NotificationManagerCompat = plus.android.importClass(
                            "androidx.core.app.NotificationManagerCompat"
                        );
                    }
                    var areNotificationsEnabled =
                        NotificationManagerCompat.from(main).areNotificationsEnabled();
                    // 未開(kāi)通‘允許通知'權(quán)限,則彈窗提醒開(kāi)通,并點(diǎn)擊確認(rèn)后,跳轉(zhuǎn)到系統(tǒng)設(shè)置頁(yè)面進(jìn)行設(shè)置
                    if (!areNotificationsEnabled) {
                        this.tongzhi = true; //這里也一樣未開(kāi)啟權(quán)限,彈出彈窗
                    }
                }
            },

上面是根據(jù)手機(jī)操作系統(tǒng)來(lái)檢測(cè)系統(tǒng)是否開(kāi)啟通知權(quán)限,下面代碼是在檢測(cè)沒(méi)有開(kāi)啟通知權(quán)限后彈窗提示,然后點(diǎn)擊彈窗按鈕后到設(shè)置對(duì)應(yīng)權(quán)限的頁(yè)面跳轉(zhuǎn)方法

Tips:

安卓手機(jī)由于系統(tǒng)新老版本不一樣,開(kāi)啟權(quán)限的位置可能有所不同,需要根據(jù)實(shí)際情況來(lái)進(jìn)行修改,ios由于權(quán)限問(wèn)題有可能會(huì)跳轉(zhuǎn)失敗,需要手動(dòng)開(kāi)啟

            //開(kāi)啟通知
            openTongZhi() { //彈窗按鈕綁定方法
                let platform = uni.getSystemInfoSync().platform; //獲取安卓還是ios
                this.tongzhi = false;
                if (platform == "ios") {//如果機(jī)型是ios,ios由于權(quán)限問(wèn)題,可能需要手動(dòng)開(kāi)啟
                    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") {//如果機(jī)型是安卓
                    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引導(dǎo)
                    if (Build.VERSION.SDK_INT >= 26) { //判斷安卓系統(tǒng)版本
                        var intent = new Intent("android.settings.APP_NOTIFICATION_SETTINGS");
                        intent.putExtra("android.provider.extra.APP_PACKAGE", pkName);
                    } else if (Build.VERSION.SDK_INT >= 21) { //判斷安卓系統(tǒng)版本
                        //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)其他--跳轉(zhuǎn)到該應(yīng)用管理的詳情頁(yè)
                        intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
                        var uri = Uri.fromParts(
                            "package",
                            mainActivity.getPackageName(),
                            null
                        );
                        intent.setData(uri);
                    }
                    // 跳轉(zhuǎn)到該應(yīng)用的系統(tǒng)通知設(shè)置頁(yè)
                    main.startActivity(intent);
                }
            },

以上就是在uniapp中開(kāi)啟通知權(quán)限的方法了,如果有需要,大家可自行挪用,如有寫的不清楚的地方還請(qǐng)指出,更多關(guān)于uniapp獲取手機(jī)通知權(quán)限的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • javascript實(shí)現(xiàn)輸入框內(nèi)容提示及隱藏功能

    javascript實(shí)現(xiàn)輸入框內(nèi)容提示及隱藏功能

    這篇文章主要介紹了javascript實(shí)現(xiàn)輸入框內(nèi)容提示及隱藏功能,實(shí)現(xiàn)方法真的超簡(jiǎn)單,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-09-09
  • 禁止js文件緩存的代碼

    禁止js文件緩存的代碼

    禁止js文件緩存問(wèn)題是我一直遇到的大問(wèn)題,終于找到了一個(gè)比較好的辦法
    2010-04-04
  • JavaScript文檔碎片操作實(shí)例分析

    JavaScript文檔碎片操作實(shí)例分析

    這篇文章主要介紹了JavaScript文檔碎片操作技巧,結(jié)合實(shí)例形式分析了JavaScript中使用文檔碎片優(yōu)化dom操作的技巧,需要的朋友可以參考下
    2015-12-12
  • JS 排序輸出實(shí)現(xiàn)table行號(hào)自增前端動(dòng)態(tài)生成的tr

    JS 排序輸出實(shí)現(xiàn)table行號(hào)自增前端動(dòng)態(tài)生成的tr

    一個(gè)項(xiàng)目,需要對(duì)數(shù)據(jù)進(jìn)行排序輸出,要求有行號(hào),依次遞增1.2.3.4.5,使用前端動(dòng)態(tài)生成的tr
    2014-08-08
  • Typescript tipe freshness 更嚴(yán)格對(duì)象字面量檢查

    Typescript tipe freshness 更嚴(yán)格對(duì)象字面量檢查

    這篇文章主要為大家介紹了Typescript tipe freshness 更嚴(yán)格對(duì)象字面量檢查,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • 在html頁(yè)面中包含共享頁(yè)面的方法

    在html頁(yè)面中包含共享頁(yè)面的方法

    在靜態(tài)html頁(yè)面中引用子頁(yè)面,類似動(dòng)態(tài)頁(yè)面方式inlcude一個(gè)共享的小片段
    2008-10-10
  • JS打印方法的幾種方法

    JS打印方法的幾種方法

    本文主要介紹了JS打印方法的幾種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • javascript實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊生成文字特效

    javascript實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊生成文字特效

    這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊生成文字特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • electron中ipcMain使用示例小結(jié)

    electron中ipcMain使用示例小結(jié)

    ipcMain模塊是Electron架構(gòu)中實(shí)現(xiàn)主進(jìn)程與渲染進(jìn)程之間通信的關(guān)鍵部分,ipcMain模塊是一個(gè)非常重要的組件,本文給大家講解electron中ipcMain用法示例小結(jié),感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • 深入理解Javascript作用域與變量提升

    深入理解Javascript作用域與變量提升

    這篇文章主要是對(duì)Javascript作用域與變量提升進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2013-12-12

最新評(píng)論