phonegap-百度地图插件-IOS版
经过一周时间的折腾,终于再摸索和学习中把百度地图插件IOS版开发完成。
其中遇到各种悲催的问题,有一些是百度地图自身的,不过经过查阅资料,弄好了。
该插件调用百度地图sdk实现 1.位置标记 2.位置定位 3.路径导航:包括自驾,公交,步行路线等
集成如下:[如有错误或不清楚的地方可以参考压缩包中 iOS开发教程.pdf ]
1.首先需要去百度开放平台申请一个动版开发密钥(Key),这个会在调用地图的时候使用。
http://developer.baidu.com/map/index.php?title=iossdk/guide/key
2. 其中 inc 文件夹拖放到你的项目根目录下面,.h 文件即为需要导入头文件,将 inc 文件夹拷入到您的工程根目录下。
同时设置头文件的链接路径,在 Xcode 的 Project -> Edit Active Target -> Build Settings -> Search Path -> Header Search Paths 中添加头文件目录:
“$(SRCROOT)/inc”
其中$(SRCROOT)宏代表您的工程文件所在目录。
3.导入静态库文件.
libs 文件夹拖放到项目的根目录下面,
设置静态库的链接路径,在 Xcode 的 Project -> Edit Active Target -> Build Settings -> Search Path -> Library Search Paths 中添加您的静态库目录。
添加内容如下:
“$(SRCROOT)/libs/Release$(EFFECTIVE_PLATFORM_NAME)”
其中, $(SRCROOT)宏代表您的工程文件目录, $(EFFECTIVE_PLATFORM_NAME)
宏代表当前配置是 OS 还是 simulator,在编译时编译器会根据您当前的编译环境
自动匹配合适的.a 文件。
这里需求注意当你拖放libs文件夹到项目后,系统会默认给添加2条记录,需要删掉,不然会报错。
4. 将mapapi.bundle拖放拷贝到您的工程根目录。
5. 导入 framework。
在 XCode 的 Project -> Edit Active Target -> Build Phases ->Link Binary With Libraries->点击下方的[+]添加即可
CoreLocation.framework 、 QuartzCore.framework 、 SystemConfiguration.framework、 CoreGraphics.framework、 OpenGLES.framework
MessageUI.framework, Security.framework
6.还需要在做一些配置:
- 在Xcode的Project -> Edit Active Target -> Build -> Linking -> Other Linker Flags中添加-ObjC
- 请将 Xcode5 的 Project -> Edit Active Target -> Build Settings -> Linking -> Other Linker Flags 中的”-ObjC”修
改为”-all_load”; - 自iOS SDK v2.5.0起,为了对iOS8的定位能力做兼容,做了相应的修改,开发者在使用过程中注意事项如下: 需要在info.plist里添加:NSLocationWhenInUseUsageDescription ,yesNSLocationAlwaysUsageDescription ,yes
- 在使用Xcode6进行SDK开发过程中,需要在info.plist中添加:Bundle display name ,且其值不能为空(Xcode6新建的项目没有此配置,若没有会造成manager start failed)
7.添加插件文件:
将src 拖放到项目的plugins里面,选择拷贝进去目录下面
8.修改AppDelegate.h 和 AppDelegate.m。根据说明修改。这里的代码是用来百度地图初始化。
9.添加插件引入:(根据pg版本不一样略有不同)
<plugin name=”Pgbaidumap” value=”Pgbaidumap” />
10.引入js文件到你的项目html页面。
添加js方法如下:
function bdmap(){
var title= “标题”; //非必须,可以随意填写
var city = “西安市”; //非必须,可以随意填写
var address = “西安高新区科技四路72号”; //非必须,可以随意填写
var lat = “34.231393”; //必须精准
var lon = “108.885194”; //必须精准
window.plugins.Pgbaidumap.map(
title,city,address,lat,lon,
function(success) {
}, function(fail) {alert(“encoding failed: ” + fail);
}
);}
11.这样就可以实现了百度地图的调用,另外可以基于这个插件,开发更多功能,只有百度地图的SDK拥有的都可以添加进去。
测试的时候最好用真机测试,模拟器有时候取不到信息。
转载请注明:夜阑小雨 » phonegap-百度地图插件-IOS版