根据ibm网站worklight混合应用程序可以运行ios 8.我使用worklight 6.1,我的应用程序确实运行ios 8但cordova地理位置失败。对于ios 7,应用程序运行没有任何问题。
我试图通过将Cordova / plugin文件夹中的CDVLocation.h,CDVLocation.m文件替换为根据此here我已找到post的更新文件来解决此问题。这并没有解决我的问题。我该如何解决这个问题?
修改 我得到这样的位置:
//get device longitude and latitude
navigator.geolocation.getCurrentPosition(onLocationSuccess, onLocationError, geolocationOptions);
在Android设备和ios7上,这工作正常,我可以检索位置。在ios 8上,getCurrentPosition函数永远不会返回onLocationSuccess。所以触发onLocationError函数总是提示用户在他的设备上启用位置服务或者发生了timeOut。
答案 0 :(得分: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中编译和访问地理位置服务。
//引用:
答案 1 :(得分:2)
请参阅以下技术说明,了解Worklight 5.0.6,6.0,6.1和6.2中的iOS 8支持:http://www-01.ibm.com/support/docview.wss?uid=swg21684538
技术说明还列出了使用Xcode 6时iOS8中地理位置的已知且已解决的问题。
您使用的是Xcode 6吗?如果是,请转至IBM Fix Central并下载最新的可用于Worklight 6.1的iFix,以解决此问题。