一、先获取网络状态和权限
//获取当前网络类型
var nt = plus.networkinfo.getCurrentType();
if (nt == plus.networkinfo.CONNECTION_NONE) {
if(localStorage.getItem('netStatus') == null || localStorage.getItem('netStatus') == 1){
var btnArray = ['取消', '打开网络'];
localStorage.setItem('netStatus','2');
mui.confirm('您需要打开网络,才可以使用【云师傅】。请到设置->无线局域网(或蜂窝移动网络)中开启。','网络已关闭', btnArray, function(e) {
if (e.index == 1) {
if(mui.os.ios) {
var UIApplication = plus.ios.import("UIApplication");
var NSURL = plus.ios.import("NSURL");
var setting = NSURL.URLWithString("app-settings:");
var application = UIApplication.sharedApplication();
application.openURL(setting);
plus.ios.deleteObject(setting);
plus.ios.deleteObject(application);
localStorage.setItem('netStatus',0);
}else{
var main = plus.android.runtimeMainActivity();
var Intent = plus.android.importClass("android.content.Intent");
var mIntent = new Intent('android.settings.WIFI_SETTINGS');
main.startActivity(mIntent);
localStorage.setItem('netStatus',0);
}
} else {
localStorage.setItem('netStatus','1');
owner.doExitApp();
}
})
}
}else{
localStorage.setItem('netStatus','0');
}
二、请求gps打开权限
plus.geolocation.getCurrentPosition(function(position){
},function(e){
if(localStorage.getItem('netStatus') == 0){
localStorage.setItem('netStatus','3');
var btnArray = ['取消', '设置'];
mui.confirm('您需要打开定位权限,才可以使用【云师傅】。该位置信息用于在管理后台记录您的工作轨迹。请到设置->隐私->定位服务中开启。','定位服务已关闭', btnArray, function(e) {
if (e.index == 1) {
if(mui.os.ios) {
var UIApplication = plus.ios.import("UIApplication");
var NSURL = plus.ios.import("NSURL");
var setting = NSURL.URLWithString("app-settings:");
var application = UIApplication.sharedApplication();
application.openURL(setting);
plus.ios.deleteObject(setting);
plus.ios.deleteObject(application);
}else{
var main = plus.android.runtimeMainActivity();
var Intent = plus.android.importClass("android.content.Intent");
var mIntent = new Intent('android.settings.LOCATION_SOURCE_SETTINGS');
main.startActivity(mIntent);
}
} else {
localStorage.setItem('netStatus',0);
}
})
}
},{
provider:'baidu',//或者amap为高德
geocode:'true'
})
三、结合自己的业务和场景进行调用即可
借鉴于:https://blog.csdn.net/yxh1157686920/article/details/90240332
在其基础上优化、测试后的最终完美版本