iOS 传名称,调用地图客户端查询位置

来源:互联网 发布:python str.format 编辑:程序博客网 时间:2024/06/06 00:00

info.plist 添加

  <key>LSApplicationQueriesSchemes</key>    <array>        <string>baidumap</string>        <string>iosamap</string>        <string>qqmap</string>    </array>

传一个名称,调用方法

-(void)openMap:(NSString *)address{    NSMutableArray *actionTitleArr = [[NSMutableArray alloc]init];    NSMutableArray *urlStringArr = [[NSMutableArray alloc]init];        NSURL *baiduUrl = [NSURL URLWithString:@"baidumap://"];    NSURL *gaodeUrl = [NSURL URLWithString:@"iosamap://"];    NSURL *qqUrl = [NSURL URLWithString:@"qqmap://"];    NSURL *systemUrl = [NSURL URLWithString:@"http://maps.apple.com"];        if ([[UIApplication sharedApplication] canOpenURL:gaodeUrl]) {        [actionTitleArr addObject:@"高德地图"];        NSString *urlString = [[NSString stringWithFormat:@"iosamap://poi?sourceApplication=Electronicsignature&name=%@",address] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];        [urlStringArr addObject:urlString];    }        if ([[UIApplication sharedApplication] canOpenURL:baiduUrl]) {        [actionTitleArr addObject:@"百度地图"];        NSString *urlString = [[NSString stringWithFormat:@"baidumap://map/geocoder?address=%@&src=webapp.geo.fang.Electronicsignature",address] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];        [urlStringArr addObject:urlString];    }        if ([[UIApplication sharedApplication] canOpenURL:qqUrl]) {        [actionTitleArr addObject:@"腾讯地图"];                NSString *urlString = [[NSString stringWithFormat:@"qqmap://search?keyword=%@",address] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];        [urlStringArr addObject:urlString];    }        if ([[UIApplication sharedApplication] canOpenURL:systemUrl]) {        [actionTitleArr addObject:@"苹果地图"];                NSString *urlString = [[NSString stringWithFormat:@"http://maps.apple.com/?address=%@",address] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];        [urlStringArr addObject:urlString];    }        if (actionTitleArr.count>0) {        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet];        for (int i = 0; i < actionTitleArr.count; i++) {            NSString *title = actionTitleArr[i];            NSString *urlStr = urlStringArr[i];            NSURL *url = [NSURL URLWithString:urlStr];                        UIAlertAction * mapAction = [UIAlertAction actionWithTitle:title style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {                if ([[UIDevice currentDevice].systemVersion integerValue] >= 10) {                    [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) {                        NSLog(@"scheme调用结束");                    }];                }else                {                    [[UIApplication sharedApplication] openURL:url];                }            }];            [alertController addAction:mapAction];        }                UIAlertAction *cancleAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {        }];        [alertController addAction:cancleAction];                [self presentViewController:alertController animated:YES completion:nil];            }else    {        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:nil message:@"请先安装一款地图软件" preferredStyle:UIAlertControllerStyleActionSheet];        UIAlertAction * confirmAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {        }];        [alertController addAction:confirmAction];        [self presentViewController:alertController animated:YES completion:nil];    }}


原创粉丝点击