2014-10-01 71 views
1

根据ibm站点worklight混合应用程序可以运行ios 8.我使用worklight 6.1,我的应用程序确实运行ios 8,但cordova地理定位失败。对于ios 7,应用程序运行时没有任何问题。IBM Worklight 6.1 cordova地理位置和ios 8

我试图用我发现here根据本post但这并没有解决我的问题的更新文件替换在科尔多瓦/插件文件夹中的CDVLocation.h,CDVLocation.m文件来解决这个问题。我该如何解决这个问题?

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

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

在Android设备上ios7这工作得很好,我可以检索位置。在ios 8上,getCurrentPosition函数永远不会返回onLocationSuccess。所以触发onLocationError函数总是提示用户启用他的设备上的位置服务或发生超时。

+0

你能具体谈谈 “不工作”?错误信息?示例项目? – 2014-10-01 13:16:45

+0

我对我的问题进行编辑。我希望它有帮助。 – fnkbz 2014-10-01 13:31:15

回答

3

问题解决!

首先安装IBM的ifix for worklight 6.1。

二,下列键/类型/值添加到您的Xcode项目的信息plist文件:从CDVLocation.m文件:

NSLocationAlwaysUsageDescriptionStringPermissions Message for App even when not in use

NSLocationWhenInUseUsageDescriptionStringPermissions Message for App when in use

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

这个你应该在iOS的8

//引用编译和访问的地理位置服务后:

IBM

Blog post

+0

仅供参考,只有权限缺失;插件文件正常。 6.2中缺少升级程序,目前iFix版本正在解决此问题。解决方法是简单地重新创建iPhone环境,并生成相应的文件。 – 2014-10-14 07:30:09

2

请参考以下技术说明在工作灯5.0.6,6.0,6.1和6.2 regaring支持iOS 8:http://www-01.ibm.com/support/docview.wss?uid=swg21684538

的技术说明中还列出了使用Xcode的6时关于iOS8上的地理定位的已知的和固定的问题。

您使用的是Xcode 6吗?如果是,请转至IBM Fix Central并下载适用于Worklight 6.1的最新iFix,以解决此问题。

+0

谢谢!在eclipse ide中使用ibm worklight studio时,是否有任何ifix安装说明? – fnkbz 2014-10-01 14:09:36

+0

您应该能够在帮助>安装新软件...向导中添加存储库,但您也可以使用新的eclipse并按照相同的方法重新开始。使用相同的工作空间或新的工作空间(您可以在其中导入Worklight项目)。 – 2014-10-01 14:10:54

+0

即使在安装ifix.the cordova版本为3.1之后,地理位置也不起作用。 – fnkbz 2014-10-10 10:27:38