是否可以帮我检查Appcelerator中是否启用了位置服务。 我正在使用Titanium SDk 6.1.2和三星S5与Marshmellow OS。即使GPS在设备中启用/不启用,但每次都会导致错误。 在此先感谢。
答案 0 :(得分:1)
首先,您需要检查Android和Android中应用的位置权限。那么您需要检查设备中是否启用了位置服务。
两者都是不同的陈述。
首先检查应用访问位置的权限&第二是关于检查位置服务是打开还是关闭。
首先在Android上检查位置权限,您无法检查位置开/关状态,否则它将始终导致错误状态。
首先在ios中的tiapp.xml中添加它 - > plist - >字典强>
<key>NSLocationAlwaysUsageDescription</key>
<string>Determine Current Location</string>
现在这里是Android / iOS的交叉兼容代码。
function checkLocationEnabledOrNot(_callback, _args) {
if (Titanium.Geolocation.locationServicesEnabled) {
_callback(_args);
} else {
alert("Turn on location on your device.");
}
}
// pass _callback method you want to call after successful access to location
// you can also pass arguments as 2nd parameter to the function you want to call
function startLocationProcess(_callback, _args) {
Ti.Geolocation.accuracy = Ti.Geolocation.ACCURACY_HIGH;
if (OS_IOS) {
checkLocationEnabledOrNot(_callback, _args);
} else if (OS_ANDROID) {
if (Ti.Geolocation.hasLocationPermissions()) {
checkLocationEnabledOrNot(_callback, _args);
} else {
Ti.Geolocation.requestLocationPermissions(Ti.Geolocation.AUTHORIZATION_ALWAYS, function (locationEvent) {
if (locationEvent.success) {
checkLocationEnabledOrNot(_callback, _args);
} else {
alert("Location permissions are required to access locations.");
}
});
}
}
}
现在,在按钮上点击位置检查后您想要做的任何事情,您可以这样做:
function anotherFunction(name) {
alert(name);
}
$.someButton.addEventListener('click', function (e) {
startLocationProcess(anotherFunction, "Hello D.Ish");
});