Titanium:以编程方式打开隐私 -> 位置服务

Titanium: Open Privacy -> Location Services programmatically

以下代码能够在 Titanium 中以编程方式(iOS 8)成功启动我的 应用程序设置

var settingsURL = Ti.App.iOS.applicationOpenSettingsURL;
if (Ti.Platform.canOpenURL(settingsURL)) {
  Ti.Platform.openURL(settingsURL);
}

问题是,如果用户在 隐私页面 中关闭了他们的位置服务,he/she 将不允许在 [=21] 中更改此设置=]应用程序的设置,要求用户返回设置 -> 隐私 -> 定位服务。这对用户体验来说是非常糟糕的。

我知道可以直接启动隐私 -> 位置服务,因为许多应用程序都可以,例如:Hotel Tonight、Foursquare、Dojo 等

如何在 Titanium 中执行此操作?

我的配置:SDK 3.5.1GA & iOS8.

不,没有 API 可用。 在iOS8中可以直接打开设置但不能直接打开位置设置 有一些url方案来打开设置功能,例如

 Ti.Platform.openURL('prefs:root=LOCATION_SERVICES');

但是苹果从 iOS 5.1 中删除了这个。因此它不适用于 5.1 及更高版本。

为此,您需要尝试为 Titanium.Geolocation 创建一个侦听器,例如:

Titanium.Geolocation.addEventListener('location', locationCallback);

请记住,即使没有检查您是否有权限,您也需要这样做,这样iOS会提示您打开定位服务使用警报对话框,因此您可以直接重定向到隐私->定位服务