移用以前项目百度地图的代码所出现的问题 iOS

1.地图不能地位;

原因是你现在项目的百度地图初始化时需要用到Key,是你以前项目的Bundle Identifier申请的,与你现在的不相符合,你到百度地图上再去申请一个就好。

详见请到打开下面链接到官方文档中查看

http://lbsyun.baidu.com/index.php?title=iossdk/guide/key

2.打开百度地图进行导航时,返回的是以前的APP;看到问题就知道是白名单的设置问题;但是和其他的设置不同的是,这个需要到plist文件中和代码去实现;                                  步骤如下:

1)到工程的plist文件下面设置你的URL Schemes;可能还有朋友不知道URL Schemes到底是什么,我先大概解释一下:

我们所知道的URL Schemes 是由两个单词组成的,

URL我就不多解释了,相信你们都了解;eg:http://www.apple.com

Schemes英文翻译是计划,规划的意思,在这里表示的是一个 URL 中的一个位置——最初始的位置,即 ://之前的那段字符。比如 http://www.apple.com 这个网址的 Schemes 是 http

URL的规划,到底是什么意思呢?

在以本地应用为主的 iOS 上,我们可以像定位一个网页一样,用一种特殊的 URL 来定位一个应用甚至应用里某个具体的功能。而定位这个应用的,就应该这个应用的 URL 的 Schemes 部分,也就是开头儿那部分。比如短信,就是 sms:

移用以前项目百度地图的代码所出现的问题 iOS_第1张图片
详解请看http://sspai.com/31500

URL Schemes 使用详解 - 少数派   URL Schemes详解

回到正题

到plist文件中打开URL types,将item0的URL Schems打开,加一项进去

移用以前项目百度地图的代码所出现的问题 iOS_第2张图片

然后到程序里面需要跳转的地方,添加代码

NSURL *appUrl = [NSURL URLWithString:@"wxxt://abcdef"]; //wxxt为目标App跳转的key

if([[UIApplication sharedApplication] canOpenURL:appUrl]){

[[UIAppliactioin sharedApplication] openURL:appUrl];

}

你也可以直接在项目的全局搜索[UIAppliactioin sharedApplication] openURL://解释:APP之间的跳转都是通过这个方法来的。把上个APP定义的URL Schems全部替换过来;

eg:

移用以前项目百度地图的代码所出现的问题 iOS_第3张图片

以百度地图导航为例的话,如下

if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"baidumap://"]]){

//初始化调启导航时的参数管理类

BMKNaviPara* para = [[BMKNaviPara alloc]init];

//指定导航类型

para.naviType = BMK_NAVI_TYPE_NATIVE;

//初始化终点节点

BMKPlanNode* end = [[BMKPlanNode alloc]init];

//指定终点经纬度

CLLocationCoordinate2D coor;

coor.longitude = [longitude doubleValue];

coor.latitude =[latitude doubleValue];

end.pt = coor;

//指定终点名称

end.name =[dicInfo objectForKey:@"ah1906"];

//指定终点

para.endPoint = end;

//指定返回自定义scheme

para.appScheme = @"wxxt://";

//调启百度地图客户端导航

[BMKNavigation openBaiduMapNavigation:para];

return;

}else{

if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"iosamap://"]]){

NSString *stringURL = [NSString stringWithFormat:@"iosamap://navi?sourceApplication=你的APP名字&backScheme=wxxt(plist文件中定义的urlShemes)://&poiname=%@&lat=%@&lon=%@&dev=1&style=0",poiname,lat,lon,nil];

NSString* encodedString = [stringURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSURL *url = [NSURL URLWithString:encodedString];

[[UIApplication sharedApplication] openURL:url];

}else{

/*百度app链接地址*/

NSString *url=@"https://itunes.apple.com/us/app/bai-du-tu-yu-yin-dao-hang/id452186370?mt=8";

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];

}

}

你可能感兴趣的:(移用以前项目百度地图的代码所出现的问题 iOS)