0

UITextView を作成し、text=@"中国,浙江省杭州市滨江区" を設定し、dataDetectorTypes=UIDataDetectorTypeAddress を設定してから、長押しして開いているマップを選択すると、GoogleMap で住所を見つけることができます。

しかし、同じアドレスを使用しましたが、openUrl を使用してもアドレスが見つかりません。

NSString *urlText = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@", [address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlText]];

理由を教えてくれる人はいますか?または iOS はこの URL を使用しません(http://maps.google.com/maps?q=%@)

4

2 に答える 2

0

別のエンコンディングで試してみませんか?例:NSUnicodeStringEncoding

 NSString *urlText = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@", [address stringByAddingPercentEscapesUsingEncoding:NSUnicodeStringEncoding]]; 

そして、の結果は何ですか

[address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]

于 2012-06-28T08:22:10.290 に答える
0

Google マップの http:// 呼び出しでは、% 区切り文字ではなく + を使用します。

NSString *fixedAddress = [fullAddress stringByReplacingOccurencesOfString:@" " withString:@"+"];
NSString *googleCall = @"http://maps.google.com/maps?q=";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[googleCall stringByAppendingString:fixedAddress]]];

私自身、この問題に遭遇し、昨夜前のコードで修正しました。

于 2012-06-28T09:24:05.363 に答える