zoukankan      html  css  js  c++  java
  • uniapp 判断 IOS和Android的GPS是否开启并设置启动

    checkOpenGPSServiceByAndroidIOS() {
        let system = uni.getSystemInfoSync(); // 获取系统信息
        console.log(system);
        if (system.platform === 'android') { // 判断平台
            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: '请打开定位服务功能',
                    showCancel: false, // 不显示取消按钮
                    success() {
                        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); // 打开系统设置GPS服务页面
                        } else {
                            console.log('GPS功能已开启');
                        }
                    }
                });
            }
        } else if (system.platform === 'ios') {
            console.log("苹果");
            var cllocationManger = plus.ios.import("CLLocationManager");
            var enable = cllocationManger.locationServicesEnabled();
            var status = cllocationManger.authorizationStatus();
            plus.ios.deleteObject(cllocationManger);
            if (enable && status != 2) {
                console.log("手机系统的定位已经打开");
            } else {
                console.log("手机系统的定位没有打开");
                uni.showModal({
                    title: '提示',
                    content: '请前往设置-隐私-定位服务打开定位服务功能',
                    showCancel: false, // 不显示取消按钮
                    success() {
                        var UIApplication = plus.ios.import("UIApplication");
                        var application2 = UIApplication.sharedApplication();
                        var NSURL2 = plus.ios.import("NSURL");
                        // var setting2 = NSURL2.URLWithString("prefs:root=LOCATION_SERVICES");
                        // var setting2 = NSURL2.URLWithString("App-Prefs:root=LOCATION_SERVICES");
                        // var setting2 = NSURL2.URLWithString("app-settings");
                        var setting2 = NSURL2.URLWithString("App-Prefs:root=Privacy&path=LOCATION");
                        // var setting2 = NSURL2.URLWithString("App-Prefs:root=Privacy&path=LOCATION_SERVICES");
                        application2.openURL(setting2);
                        plus.ios.deleteObject(setting2);
                        plus.ios.deleteObject(NSURL2);
                        plus.ios.deleteObject(application2);
                    }
                });
            }
        }
    }
    
  • 相关阅读:
    linux中解压.tgz, .tar.gz ,zip ,gz, .tar文件
    hook(v16.7测试)?
    React优点?
    Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
    说说数据库连接池工作原理和实现方案?
    short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
    Oracle的数据优化(经常被问到)?
    存储过程和函数的区别?
    Collection 和 Collections的区别?
    说说数据库连接池工作原理和实现方案?
  • 原文地址:https://www.cnblogs.com/kerin/p/15448690.html
Copyright © 2011-2022 走看看