Ios8 钛:开放隐私->;以编程方式提供位置服务

Ios8 钛:开放隐私->;以编程方式提供位置服务,ios8,titanium,titanium-mobile,Ios8,Titanium,Titanium Mobile,以下代码能够在Tianium中以编程方式(iOS 8)成功启动my应用程序的设置: var settingsURL = Ti.App.iOS.applicationOpenSettingsURL; if (Ti.Platform.canOpenURL(settingsURL)) { Ti.Platform.openURL(settingsURL); } 问题是,如果用户在隐私页面中关闭了位置服务,他/她将不被允许在应用程序的设置中更改此设置,要求用户返回设置->隐私->位置服务。这对用户体

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

var settingsURL = Ti.App.iOS.applicationOpenSettingsURL;
if (Ti.Platform.canOpenURL(settingsURL)) {
  Ti.Platform.openURL(settingsURL);
}
问题是,如果用户在隐私页面中关闭了位置服务,他/她将不被允许在应用程序的设置中更改此设置,要求用户返回设置->隐私->位置服务。这对用户体验非常不利

我知道可以直接启动隐私->定位服务,因为很多应用都可以,比如:Hotel Night、Foursquare、Dojo等等

如何在钛合金中实现这一点


我的配置:SDK 3.5.1GA和iOS8。

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

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

但苹果将其从iOS 5.1中删除。因此,它在5.1及更高版本上不起作用。

要使其起作用,您需要尝试创建一个钛的侦听器。地理定位,类似于:

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

请记住,即使不检查您是否有权限,您也需要执行此操作,这样iOS将提示您使用警报对话框打开位置服务,这样您就可以直接重定向到隐私->位置服务,尽管这也是正确的(因为您说没有API)有一种方法可以做到这一点,我找到了。谢谢你的回答@LucasA你能分享你的解决方案吗?@RodionMamin我有,检查下面的答案。。这对你不起作用吗?除了
Ti.Platform.openURL('prefs:root=LOCATION\u SERVICES')之外,没有其他选择了吗适用于较新版本的iOS。我知道这是可能的,因为“地图”应用程序可以做到这一点