iOS 6 にはユーザーの位置を取得するための GeoLocation/WatchPosition のバグがあるため、locationManager を xcode で実装して座標を取得しています。
しかし、これらの座標をローカルの HTML (webView) ファイルで使用したいと考えています。locationManager から HTML / JavaScript ファイルへの座標を使用、送信、または呼び出すことは可能ですか?
編集:
私は可能な解決策について考えました...クッキー...以下のコードで出力を取得できないため、それを行うことができます:
EDIT 2:はい、できます...以下のコードを調整すると動作します。webView (HTML) が Cookie を取得できるように、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>