1

根据 ibm 网站,worklight 混合应用程序可以在 ios 8 上运行。我使用 worklight 6.1,我的应用程序确实在 ios 8 上运行,但科尔多瓦地理定位失败。对于 ios 7,应用程序运行没有任何问题。

我试图通过用根据这篇文章在此处找到的更新文件替换 Cordova/plugin 文件夹中的 CDVLocation.h、CDVLocation.m 文件来解决这个问题,但这并没有解决我的问题。我该如何解决这个问题?

编辑: 我得到这样的位置:

//get device longitude and latitude
navigator.geolocation.getCurrentPosition(onLocationSuccess, onLocationError, geolocationOptions);

在 android 设备和 ios7 上这工作正常,我可以检索位置。在 ios 8 上,getCurrentPosition 函数永远不会返回 onLocationSuccess。所以 onLocationError 函数总是被触发,提示用户要么在他的设备上启用定位服务,要么已经发生了超时。

4

2 回答 2

3

问题解决了!

首先安装 IBM 的 ifix for worklight 6.1。

其次,将以下 Key / Type / Values 添加到您的 xcode 项目的 info plist 文件中:

NSLocationAlwaysUsageDescription String Permissions Message for App even when not in use

NSLocationWhenInUseUsageDescription String Permissions Message for App when in use

第三次下载:来自GitHub的 CDVLocation.m 文件,并通过替换代码来更新现有的 CDVLocation.m 文件。该文件位于 CordovaLib/plugins。

在此之后,您应该在 iOS 8 中编译和访问地理位置服务。

//参考:

IBM

博文

于 2014-10-11T16:06:04.953 回答
2

请参阅以下有关 Worklight 5.0.6、6.0、6.1 和 6.2 中的 iOS 8 支持的技术说明:http ://www-01.ibm.com/support/docview.wss?uid=swg21684538

该技术说明还列出了在 iOS8 中使用 Xcode 6 时有关地理定位的已知且已修复的问题。

你在使用 Xcode 6 吗?如果是,请转至 IBM Fix Central 并下载最新可用的 iFix for Worklight 6.1,这应该可以解决此问题。

于 2014-10-01T13:54:45.970 回答