1***@qq.com
回复
2***@qq.com : 我这边可以 具体逻辑在下
//获取当前设备网络Ip地址
function getCurrentNetIp() {
let deviceIp = '127.0.0.1'
if (plus.os.name == "Android") {
var Context = plus.android.importClass("android.content.Context");
var wifiManager = plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);
var wifiInfo = plus.android.invoke(wifiManager, "getConnectionInfo");
var ipAddress = plus.android.invoke(wifiInfo, "getIpAddress");
deviceIp = '';
if (ipAddress != 0) {
deviceIp = ((ipAddress & 0xff) + "." + (ipAddress >> 8 & 0xff) + "." + (ipAddress >> 16 & 0xff) +
"." + (ipAddress >> 24 & 0xff));
}
} else if (plus.os.name == "iOS") {
}
return deviceIp
}
// 判断字符串是否存在数组
function IsInArray(arr, val) {
var testStr = ',' + arr.join(",") + ",";
return testStr.indexOf("," + val + ",") != -1;
}
let requestRootApi = null
// 根据当前网络 判断
function currentNetType(currentNetType) {
requestRootApi = null
return new Promise((resolve, reject) => {
switch (currentNetType) {
case "wifi":
// 判断当前网络 ip是内网还是外网
let currentNetIp = getCurrentNetIp();
// 100.X.X.X 10.X.X.X 192.168.X.X 172.16.X.X-172.31.X.X 172.15.xxx 内网ip范围
let insideRang1 = ['100', '10']
let insideRang2 = ['192.168']
let insideRang3 = ['17216', '17217', '17218', '17219', '17220', '17221', '17222', '17223',
'17224', '17225',
'17226', '17227', '17228', '17229', '17230', '17231'
]
let insideRang4 = ['17215']
let splitGetIp = currentNetIp.split('.')
if (splitGetIp.length === 4) {
if (IsInArray(insideRang1, splitGetIp[0]) ||
IsInArray(insideRang2, currentNetIp.substring(0, currentNetIp.indexOf(".") + 4)) ||
IsInArray(insideRang3, currentNetIp.substring(0, currentNetIp.indexOf(".") + 4).replace(
'.'))) {
uni.request({
url: 'http://pv.sohu.com/cityjson?ie=utf-8',
method: 'POST',
success: (res) => {
requestRootApi = 'http://eafc-beta.qieguo.net/api'
resolve('http://eafc-beta.qieguo.net/api')
},
fail: (f) => {
// 内网
requestRootApi = 'http://172.28.121.124:8080'
resolve('http://172.28.121.124:8080')
}
})
} else {
requestRootApi = 'http://eafc-beta.qieguo.net/api'
resolve('http://eafc-beta.qieguo.net/api')
}
} else if (splitGetIp.length === 3 && IsInArray(insideRang4, splitGetIp[0] + splitGetIp[1])) {
// 内网
requestRootApi = 'http://172.28.121.124:8080'
resolve('http://172.28.121.124:8080')
} else {
requestRootApi = 'http://eafc-beta.qieguo.net/api'
resolve('http://eafc-beta.qieguo.net/api')
}
break;
case "none":
// 当前无网络
uni.showToast({
title: '当前网络无连接,请检查网络设置!',
duration: 5000,
icon: 'none'
});
requestRootApi = 'http://eafc-beta.qieguo.net/api'
resolve('http://eafc-beta.qieguo.net/api')
break;
default:
// 当前网络可能是2g 3g 4g 5g ethernet/有线网络 unknown/Android 下不常见的网络类型
requestRootApi = 'http://eafc-beta.qieguo.net/api'
resolve('http://eafc-beta.qieguo.net/api')
break;
}
})
}
2021-09-02 17:24
7 个评论
要回复文章请先登录或注册
辉煌哥
1***@qq.com
1***@qq.com
1***@qq.com
2***@qq.com
2***@qq.com
1***@qq.com