前言

  在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在车内显示屏上的一个界面展示。

  

 

  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 中自定义界面来显示导航信息。

  

 

  3.CarPlay Framework

  

 

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

  4.CarPlay的代码实现

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

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

  

 

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

  

 

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

  

 

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

  

 

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

  

 

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

  

 

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

  

 

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

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

  

 

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