最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

uniapp獲取當(dāng)前位置及檢測授權(quán)狀態(tài)效果

 更新時間:2024年04月27日 10:21:33   作者:Smile_ping  
這篇文章主要介紹了uniapp獲取當(dāng)前位置及檢測授權(quán)狀態(tài)效果,本文通過示例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧

uniapp獲取當(dāng)前位置及檢測授權(quán)定位權(quán)限

效果圖

Android設(shè)備

點擊 “設(shè)置”,跳轉(zhuǎn)應(yīng)用信息,打開“權(quán)限即可”;

創(chuàng)建js文件

permission.js

  • 新建 .js 文件,例: permission.js
  • 管理相關(guān)權(quán)限,例相冊、相機等,可以寫在此文件中
  • 根據(jù)不同平臺,處理向系統(tǒng)請求權(quán)限
/// null = 未請求,1 = 已允許,0 = 拒絕|受限, 2 = 系統(tǒng)未開啟
var isIOS
function location() {
    var result = 0;
    var cllocationManger = plus.ios.import("CLLocationManager");
    var enable = cllocationManger.locationServicesEnabled();
    var status = cllocationManger.authorizationStatus();
    if (!enable) {
        result = 2;
    } else if (status === 0) {
        result = null;
    } else if (status === 3 || status === 4) {
        result = 1;
    } else {
        result = 0;
    }
    plus.ios.deleteObject(cllocationManger);
    return result;
}
function requestIOS(permissionID) {
    return new Promise((resolve, reject) => {
        switch (permissionID) {
            case "location":
                resolve(location());
                break;
            default:
                resolve(0);
                break;
        }
    });
}
function requestAndroid(permissionID) {
    return new Promise((resolve, reject) => {
        plus.android.requestPermissions(
            [permissionID],
            function(resultObj) {
                var result = 0;
                for (var i = 0; i < resultObj.granted.length; i++) {
                    var grantedPermission = resultObj.granted[i];
                    console.log('已獲取的權(quán)限:');
                    result = 1
                }
                for (var i = 0; i < resultObj.deniedPresent.length; i++) {
                    var deniedPresentPermission = resultObj.deniedPresent[i];
                    console.log('拒絕本次申請的權(quán)限:');
                    result = 0
                }
                for (var i = 0; i < resultObj.deniedAlways.length; i++) {
                    var deniedAlwaysPermission = resultObj.deniedAlways[i];
                    console.log('永久拒絕申請的權(quán)限:');
                    result = -1
                }
                resolve(result);
            },
            function(error) {
                resolve({
                    code: error.code,
                    message: error.message
                });
            }
        );
    });
}
function gotoAppPermissionSetting() {
    if (permission.isIOS) {
        var UIApplication = plus.ios.import("UIApplication");
        var application2 = UIApplication.sharedApplication();
        var NSURL2 = plus.ios.import("NSURL");
        var setting2 = NSURL2.URLWithString("app-settings:");
        application2.openURL(setting2);
        plus.ios.deleteObject(setting2);
        plus.ios.deleteObject(NSURL2);
        plus.ios.deleteObject(application2);
    } else {
        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);
    }
}
const permission = {
    get isIOS(){
        return typeof isIOS === 'boolean' ? isIOS : (isIOS = uni.getSystemInfoSync().platform === 'ios')
    },
    requestIOS: requestIOS,
    requestAndroid: requestAndroid,
    gotoAppSetting: gotoAppPermissionSetting
}
export default permission

location.js

  • 檢測當(dāng)前權(quán)限
  • 獲取當(dāng)前位置
  • 拒絕授權(quán),彈窗提示
  • 跳轉(zhuǎn)App應(yīng)用設(shè)置,打開位置權(quán)限
import permision from '@/common/js/permission.js'
import store from '@/store/index.js'
export async function getLocation(cb) {
	// #ifdef APP-PLUS
	let status = await checkPermission();
	if (status !== 1) {
		return status;
	}
	// #endif
	if (typeof cb == 'function') cb && typeof cb == 'function' && cb(status)
	doGetLocation();
}
/**
 * 獲取當(dāng)前位置信息
 */
export const doGetLocation = () => {
	uni.getLocation({
		success: (res) => {
            // 根據(jù)個人所需處理
			store.commit('SET_LOCATION', {
				lng: res.longitude,
				lat: res.latitude
			});
			console.log('當(dāng)前位置:', res.longitude, res.latitude);
		},
		fail: (err) => {
			if (err.errMsg.indexOf("auth deny") >= 0) {
				uni.showToast({
					title: "訪問位置被拒絕",
					icon: 'none'
				})
			} else {
				uni.showToast({
					title: err.errMsg,
					icon: 'none'
				})
			}
		}
	})
}
/**
 * 檢測定位權(quán)限
 */
async function checkPermission() {
	let status = permision.isIOS ? await permision.requestIOS('location') :
		await permision.requestAndroid('android.permission.ACCESS_FINE_LOCATION');
	if (status === null || status === 1) {
		status = 1;
	} else if (status === 2) {
		uni.showModal({
			content: "系統(tǒng)定位已關(guān)閉",
			showCancel: false,
			success: function(res) {}
		})
	} else if (status.code) {
		uni.showModal({
			content: status.message
		})
	} else {
		uni.showModal({
			content: "為了您更好的體驗App藍牙功能,需要獲取位置信息,請點擊設(shè)置開啟定位權(quán)限",
			confirmText: "設(shè)置",
			success: function(res) {
				if (res.confirm) {
					permision.gotoAppSetting();
				}
			}
		})
	}
	return status;
}
const location = {
	getLocation
}
export default location;

使用

<button type="primary" @click="getLocation">獲取位置</button>
import location from '@/common/js/location.js'
/**
 * 獲取位置
 */
getLocation() {
    location.getLocation();
}

回調(diào)

location.getLocation((res) => {
    if (res != 1) return;
    // xxx
});

到此這篇關(guān)于uniapp獲取當(dāng)前位置及檢測授權(quán)狀態(tài)的文章就介紹到這了,更多相關(guān)uniapp獲取當(dāng)前位置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

丰镇市| 四会市| 耒阳市| 绍兴市| 太康县| 陆川县| 清水河县| 沽源县| 琼结县| 永年县| 静海县| 两当县| 万年县| 固镇县| 耿马| 方城县| 平定县| 扎兰屯市| 赤水市| 吐鲁番市| 乐昌市| 芒康县| 八宿县| 邢台市| 吴堡县| 浪卡子县| 威远县| 丹阳市| 涞源县| 洪湖市| 双牌县| 万全县| 谢通门县| 西平县| 丰城市| 剑阁县| 印江| 通州区| 广东省| 邳州市| 茶陵县|