2013-02-06 1 views
1

iOS 6에는 사용자 위치를 얻기위한 GeoLocation/WatchPosition의 버그가 있으므로 locationManager를 xcode에 넣고 좌표를 얻으려고합니다.로컬 HTML 파일에서 locationManager의 좌표를 사용하는 방법은 무엇입니까?

그러나 로컬 HTML (webView) 파일에서 이러한 좌표를 사용하고 싶습니다. locationManager에서 HTML/JavaScript 파일로 코드를 사용, 전송 또는 호출 할 수 있습니까?

편집 2 : 네, 할 수

편집 : 나는 아래에있는 내 코드에서 출력을 얻을 수 없기 때문에

내가 가능한 해결책에 대해 생각 ... 쿠키 ...이 수행 할 수 있습니다 ... 아래 코드를 조정하면 작동합니다. 중요한 것은 쿠키 도메인 및 경로 옵션으로, webView (HTML)가 쿠키를 얻을 수 있습니다.

누군가가 더 나은 해결책을 알고 있다면 알려주세요. 배우고 싶습니다!

- (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> 

답변

1

질문을 soluve하는 간단한 방법이있다. 당신은

https://github.com/marcuswestin/WebViewJavascriptBridge

에서 봐 주시기 바랍니다 목표 C로 구현 된 메소드를 호출 할 수 있도록 HTML 페이지 window.xxx를 통해 그 방법에 액세스 할 수 있습니다 '채우기'웹보기에 목표 C의 방법에 WebViewJavascriptBridge을 사용할 수 있습니다
관련 문제