【问题标题】:How to load address in webview in iPhone?如何在 iPhone 的 webview 中加载地址?
【发布时间】:2023-03-22 00:49:01
【问题描述】:

目前我正在使用 iPhone 应用程序,使用 UIWebview 加载地址,如“美国”,然后运行应用程序,屏幕上未显示地图。我想从用户输入搜索栏字段中显示位置,如何解决这个 iuissue?请帮帮我

提前致谢

我试过了:

    webView=[[UIWebView alloc]initWithFrame:CGRectMake(0, 40, 320,376)];
    webView.delegate=self;
    webView.scalesPageToFit=YES;
    NSString *mapurl = @"http://maps.google.com/maps?q=";
    NSString *urlString1 = [mapurl stringByAppendingFormat:@"America"];    
    NSString *OmitSpace = [urlString1 stringByReplacingOccurrencesOfString:@" " withString:@"%20"];

    NSURL *url=[NSURL URLWithString:OmitSpace];
    NSURLRequest *requestObj=[NSURLRequest requestWithURL:url];
    [webView loadRequest:requestObj];

屏幕截图:

【问题讨论】:

    标签: iphone ios webview maps location


    【解决方案1】:

    另一种解决方案是使用 googleapis 查找 api 的 JSON 响应的纬度和经度,并在 MKMapView 中使用它们来显示该特定区域..

    一个例子..

    http://maps.googleapis.com/maps/api/geocode/json?address=america&sensor=true

    结果是 JSON 输出,您可以在其中获取纬度和经度,进一步将其置于MKMapView

    或者对于 iOS 5 及更高版本,使用 CLGeocoderMKMapView 来获得相同的输出

    CLGeocoder *geocoder = [[CLGeocoder alloc] init];
        [geocoder geocodeAddressString:@"America" completionHandler:^(NSArray *placemarks, NSError *error) {
            //Error checking
    
            CLPlacemark *placemark = [placemarks objectAtIndex:0];
            MKCoordinateRegion region;
            region.center.latitude = placemark.region.center.latitude;
            region.center.longitude = placemark.region.center.longitude;
            MKCoordinateSpan span;
            double radius = placemark.region.radius / 1000; // convert to km
    
            NSLog(@"Radius is %f", radius);
            span.latitudeDelta = radius / 112.0;
    
            region.span = span;
    
            [mapView setRegion:region animated:YES];
        }];
    

    【讨论】:

    【解决方案2】:
    NSString *OmitSpace = [urlString1 stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
    

    这将仅省略空格。它不会转换其他转义字符。所以用这个替换上面的行。

    NSString *OmitSpace = [urlString1 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
    

    【讨论】:

    • 登录 OmitSpace 并将其加载到浏览器中。检查它是否正确加载。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-05
    • 2020-11-05
    • 1970-01-01
    • 2011-05-31
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    相关资源
    最近更新 更多