继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

搜狗地图CarPlay版本 is Coming!

乔Joan
关注TA
已关注
手记 40
粉丝 51
获赞 91

https://img1.mukewang.com/5bb082230001971b08000480.jpg

前言

    在2018苹果开发者大会WWDC中,即将发布的iOS12 中新增了CarPlayframework,CarPlay开放了它的API,让第三方 APP 可以轻松地接入,即允许第三方导航 APP 使用CarPlay,这样就可以把第三方的导航数据同步到CarPlay上,使得用户在开车的时候就可以享受到不一样的开车体验。

    先提前透个信儿哦,搜狗地图已经实现了对CarPlay完美适配,双手合十静等苹果官方审核通过啦~那么Carplay是什么?怎么实现接入第三方APP的?搜狗地图适配效果是怎样的呢?下面小编带你一睹为快吧~

(原谅十一要来了,小编很激动,迫不及待想要给各位老司机们分享十一出行驾车必备神器-搜狗地图carplay,so今天就暂不分享测试相关内容啦~)

1.CarPlay是什么


     官方定义:CarPlay 车载(原名iOS in the Car,即车载iOS系统)是苹果公司推出的一种新型产业标准,主要为令其iOS设备能够与诸多制造商之嵌入式汽车系统共生而设计。

     简单来说,CarPlay就是车的iOS系统,能够通过USB与你的iPhone手机连接,CarPlay车载会把许多你想用 iPhone 进行的操作都搬到车内的中控显示屏上,使你在驾驶的同时,还能使用如听音乐、接打电话、收发短信、导航等功能。CarPlay 车载适用于多款车型,它让你能够在车内智能、安全地使用 iPhone。

     下图所示是CarPlay在车内显示屏上的一个界面展示。

https://img2.mukewang.com/5bb0824c000142c010800622.jpg

2.CarPlay如何接入第三方导航APP


     Carplay接入第三方导航APP是通过苹果今年发布的iOS12中的CarPlayFramework实现的。CarPlay Framework的作用是将第三方导航APP的UI显示到CarPlay屏幕上。

     那么怎么将第三方导航APP的UI显示到CarPlay屏幕呢?

     很简单,苹果提供了很多模版来显示不同的视图,开发者需要做的就是把需要展示的数据交给模版,这样 CarPlay 就会显示你所定义的数据。这种灵活性可以让你专注于 CarPlay 的体验而不需要花费力气适配所有支持 CarPlay 的车型。你只需花费一点点精力即可让你的导航 APP 拥有 CarPlay 能力。

     下图所示是carplay的UI模板,上层和下层为CarPlaySystem层,中间层显示导航APP页面。开发同学可以在导航APP 中自定义界面来显示导航信息。

https://img4.mukewang.com/5bb0826e000135f610800536.jpg

3.CarPlay Framework

https://img4.mukewang.com/5bb082aa0001df7a10801380.jpg

 由上图可知,CarPlay 这个框架所做的事就是显示 UI 到 CarPlay 屏幕上,而这些 UI 都提供了对应的模版,只要按着这些模版创建不同的 UI 即可适配所有的车型。

4.CarPlay 的代码实现

        首先需要实现 CPApplicationDelegate,这个代理主要用来监听与 CarPlay 连接成功和断开连接;监听用户点击 Alert 的事件。

        CPMapTemplate 来承载整个地图界面,它是一个根模版。CPMapTemplate 的作用可以用来管理 Pin 手势,显示导航提示,显示导航条或地图按钮。



https://img3.mukewang.com/5bb082dc0001dadc10800719.jpg


CPGridTemplate 是一个网状的模版,类似于 UICollectionView。最多只显示 8 个按钮,它适合显示多行多列的菜单。

https://img.mukewang.com/5bb083350001ce8c10800766.jpg

CPListTemplate 和 UITableView 很相似,它由一个或多个分组组成,而每一个分组使用 CPListSection 表示,CPListSection中存放的是 CPListItem,可以设置它的标题,图片,副标题。它适合用于显示列表类型的 UI,犹如 UITableView。

https://img2.mukewang.com/5bb0834f000125fb10800781.jpg


CPSearchTemplate 用来搜索目的地,并显示搜索结果。

https://img2.mukewang.com/5bb0881c00014a0810800775.jpg

 CPVoiceControlTemplate 一个语音控制的模版,用于语音搜索样式。

https://img.mukewang.com/5bb08eaf0001ed9110800782.jpg

当用户选择一个目的地开启导航后,会弹出一个导航预览,用户确认后开始导航,直到导航结束。下面这张图就是整个导航的流程:

https://img2.mukewang.com/5bb08f5200017a2010800402.jpg


导航开始执行后,下面这个代理方法会执行。我们需要CPMapTemplateDelegate 中处理。这个时候需要开启 CPNavigationSession 它表示一次导航会话,可以通过 CPNavigationSession 对这次的导航进行操作,比如取消本次导航。 


https://img2.sycdn.imooc.com/5bb090220001036e10800830.jpg


 可以通过 CPMapTemplateDelegate 代理方法来控制显示当前导航的状态。

5.CarPlay接入搜狗地图APP的实现效果

https://img1.sycdn.imooc.com/5bb09041000126c410800698.jpg

https://img1.sycdn.imooc.com/5bb09074000192ce10800698.jpg

https://img2.sycdn.imooc.com/5bb0907500012aec10800698.jpg

是不是很心动?目前搜狗地图已经发送给10000名热心用户对Carplay版本进行了内测,用户反馈非常棒,也提出了很多良心建议,搜狗地图团队也全心投入进行了优化改进,一起期待新的Carplay上线吧~


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP