uniapp APP端 獲取定位失敗 去手機(jī)設(shè)置里面設(shè)置定位

在使用uniapp獲取定位的時(shí)候 uni.getLocation() 第一次打開(kāi)手機(jī)的時(shí)候 會(huì)彈出 授權(quán)界面擦秽,但是有時(shí)候點(diǎn)錯(cuò)就不會(huì)再次彈出來(lái)了崎淳。今天做了個(gè)整理

創(chuàng)建 device.js文件

let system = uni.getSystemInfoSync(); // 獲取系統(tǒng)信息
/**檢查是否打開(kāi)GPS功能(android)**/
export const checkOpenGPSServiceByAndroid = () => {
        if (system.platform === 'android') { // 判斷平臺(tái)
            openGps()
        }else  if (system.platform == "ios") {
        //蘋果打開(kāi)對(duì)應(yīng)的通知欄
        uni.showModal({
            title: "定位權(quán)限開(kāi)啟提醒",
            content: "您還沒(méi)有開(kāi)啟定位權(quán)限趴酣,無(wú)法定位,請(qǐng)前往設(shè)置编矾!",
            confirmText: "去設(shè)置",
            success: function(res) {
                if (res.confirm) {
                    var app = plus.ios.invoke("UIApplication", "sharedApplication");
                    var setting = plus.ios.invoke("NSURL", "URLWithString:", "app-settings:");
                    plus.ios.invoke(app, "openURL:", setting);
                    plus.ios.deleteObject(setting);
                    plus.ios.deleteObject(app);
                }
            }
        });
        }
    }
    /**
     * 定位權(quán)限及彈出權(quán)限彈框 監(jiān)聽(tīng)用戶點(diǎn)擊按鈕
     * **/
let num = 0;
export const openGps = () => {
    plus.android.requestPermissions(
        ['android.permission.ACCESS_FINE_LOCATION'],
        function(resultObj) {
            console.log('resultObj---', resultObj);
        
            var result = 0;
            for (var i = 0; i < resultObj.granted.length; i++) {
                var grantedPermission = resultObj.granted[i];
                // console.log(6, '已獲取的權(quán)限:' + grantedPermission);
                result = 1
            }
            for (var i = 0; i < resultObj.deniedPresent.length; i++) {
                var deniedPresentPermission = resultObj.deniedPresent[i];
                // console.log(5, '拒絕本次申請(qǐng)的權(quán)限:' + deniedPresentPermission);
                num += 1
                result = 0
            }
            for (var i = 0; i < resultObj.deniedAlways.length; i++) {
                 var deniedAlwaysPermission = resultObj.deniedAlways[i];
                 // console.log(4, '永久拒絕申請(qǐng)的權(quán)限:' + deniedAlwaysPermission);
                 num += 1
                 result = -1
             }
            // 若所需權(quán)限被拒絕,則打開(kāi)APP設(shè)置界面,可以在APP設(shè)置界面打開(kāi)相應(yīng)權(quán)限
            if (result != 1) {
                    uni.showToast({
                        title: "請(qǐng)到系統(tǒng)設(shè)置打開(kāi)定位服務(wù)功能狼渊!",
                        icon: "none",
                        duration: 1000
                    })
                    setTimeout(() => {
                        var Intent = plus.android.importClass("android.content.Intent")
                        var Settings = plus.android.importClass("android.provider.Settings")
                        var Uri = plus.android.importClass("android.net.Uri")
                        var mainActivity = plus.android.runtimeMainActivity()
                        var intent = new Intent()
                        intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
                        var uri = Uri.fromParts("package", mainActivity.getPackageName(), null)
                        intent.setData(uri)
                        mainActivity.startActivity(intent)
                    }, 1200)
             
            }else {
              //因?yàn)榘沧渴謾C(jī)  手機(jī)授權(quán)之后還需要打開(kāi)定位服務(wù)功能所有當(dāng)手機(jī)授權(quán)之后 調(diào)用下面的方法
                var context = plus.android.importClass("android.content.Context")
                var locationManager = plus.android.importClass("android.location.LocationManager")
                var main = plus.android.runtimeMainActivity()
                var mainSvr = main.getSystemService(context.LOCATION_SERVICE)
                if (!mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER)) {
                    uni.showModal({
                        title: '提示',
                        content: '請(qǐng)打開(kāi)定位服務(wù)功能',
                        success(res) {
                            if (res.confirm) {
                                if (!mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER)) {
                                    var Intent = plus.android.importClass('android.content.Intent');
                                    var Settings = plus.android.importClass('android.provider.Settings')
                                    var intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)
                                    main.startActivity(intent) // 打開(kāi)系統(tǒng)設(shè)置GPS服務(wù)頁(yè)面
                                    
                                } else {
                                    
                                }
                            }
                        }
                    });
                    
                    return
                }
            }
        },
        function(error) {
            console.log('申請(qǐng)權(quán)限錯(cuò)誤:' + error.code + " = " + error.message);
            resolve({
                code: error.code,
                message: error.message
            });
        }
    );
}

調(diào)用

import {checkOpenGPSServiceByAndroid } from '@/utils/device.js'

getGPS(){
        uni.getLocation({
        type: 'wgs84',
        geocode:true,//設(shè)置該參數(shù)為true可直接獲取經(jīng)緯度及城市信息
        success: function (res) {
            this_.latitude = res.latitude
            this_.longitude = res.longitude
        },
        fail: function (ress) {
                //失敗調(diào)用
            checkOpenGPSServiceByAndroid()
        }
    })      
}

轉(zhuǎn)載:https://blog.csdn.net/weixin_42220533/article/details/128967939

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末箱熬,一起剝皮案震驚了整個(gè)濱河市类垦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌城须,老刑警劉巖蚤认,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異糕伐,居然都是意外死亡砰琢,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門良瞧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)陪汽,“玉大人,你說(shuō)我怎么就攤上這事褥蚯≈吭” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵遵岩,是天一觀的道長(zhǎng)你辣。 經(jīng)常有香客問(wèn)我,道長(zhǎng)尘执,這世上最難降的妖魔是什么舍哄? 我笑而不...
    開(kāi)封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮誊锭,結(jié)果婚禮上表悬,老公的妹妹穿的比我還像新娘。我一直安慰自己丧靡,他們只是感情好蟆沫,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著温治,像睡著了一般饭庞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上熬荆,一...
    開(kāi)封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天舟山,我揣著相機(jī)與錄音,去河邊找鬼卤恳。 笑死累盗,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的突琳。 我是一名探鬼主播若债,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼拆融!你這毒婦竟也來(lái)了蠢琳?” 一聲冷哼從身側(cè)響起啊终,我...
    開(kāi)封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎挪凑,沒(méi)想到半個(gè)月后孕索,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡躏碳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年搞旭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片菇绵。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡肄渗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出咬最,到底是詐尸還是另有隱情翎嫡,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布永乌,位于F島的核電站惑申,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏翅雏。R本人自食惡果不足惜圈驼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望望几。 院中可真熱鬧绩脆,春花似錦、人聲如沸橄抹。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)楼誓。三九已至玉锌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間疟羹,已是汗流浹背主守。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留阁猜,地道東北人丸逸。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓蹋艺,卻偏偏與公主長(zhǎng)得像剃袍,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子捎谨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容