由于iOS 6有一个GeoLocation / WatchPosition的错误来获取用户位置,我在xcode中实现了locationManager并获取了坐标。
但是,我想在本地HTML(webView)文件中使用这些coords。 是否可以使用,发送或调用locationManager中的coords到HTML / JavaScript文件?
编辑:
我想到了一个可能的解决方案...... cookies ...可以这样做,因为我无法在下面的代码中获得输出:
编辑2: 是的它可以...我调整下面的代码,它的工作原理。重要的是Cookie域和路径选项,因此webView(HTML)可以获取cookie。
但如果有人知道更好的解决方案,请告诉我,我想学习!
- (void)applicationdidBecomeActive {
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];
}
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
...
NSLog(@"%@", DevicePosition);
NSDictionary *newCookieDict = [NSMutableDictionary
dictionaryWithObjectsAndKeys:
@".^filecookies^", NSHTTPCookieDomain,
@"DevicePos", NSHTTPCookieName,
@"/", NSHTTPCookiePath,
DevicePosition, NSHTTPCookieValue,
//@"2012-01-01 12:00:00 -0100", NSHTTPCookieExpires,
nil];
//create a new cookie
NSHTTPCookie *cookie = [NSHTTPCookie
cookieWithProperties:newCookieDict];
//add the new cookie
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
// dev cookie controle
NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (cookie in [cookieJar cookies]) {
NSLog(@"%@", cookie);
}
HTML文件:
<script type="text/javascript">
function getCookie(name) {
var re = new RegExp(name + "=([^;]+)");
var value = re.exec(document.cookie);
return (value != null) ? unescape(value[1]) : null;
}
</script>
答案 0 :(得分:1)
有一种简单的方法来解决您的问题。 您可以使用WebViewJavascriptBridge来填充&#39;一个Objective C的webview方法,所以你的html页面可以通过window.xxx访问该方法来调用Objective C中实现的方法。