|Native地图与Web融合技术的应用与实践
有用户反馈美团打车地图的性能有一些问题 , 美团打车技术团队在调研分析之后 , 采用了一套Native地图与Web的融合框架 , 不仅实现了用户手势事件智能分发的机制 , 还解决了WebView与Native地图在同一页面内布局困难的问题 , 同时性能也得到全面的优化 。 本文系融合技术的经验总结与分享 。
本文插图
1. 背景
美团打车业务很早就在美团App与点评App中提供了服务入口 , 并在技术上采用了H5与Native的混合开发技术 。 随着业务上线 , 有用户反馈我们的地图性能有一些问题 , 原因是我们打车地图使用的是Web版的地图(通过腾讯地图JavaScript API) , 业内同类产品使用的是Native版的地图SDK , Native地图相比Web地图具有天然的性能优势 , 所以美团打车地图从首屏地图加载到后续的地图操作体验都有一定差距 。
1.1 问题与挑战
为了改善打车业务的地图体验 , 我们想到的方案是在展示地图的部分使用Native地图 , 而非地图部分使用H5页面来显示 , 这样既能追平与竞品的地图性能差距 , 又能充分发挥H5的开发效率 。
这种方案乍一看似乎是传统的Hybrid开发 , 没什么难度与新奇 。 比如地图使用预先内置到App中的地图SDK实现 , H5与Native的交互使用业界成熟的JSBridge技术 。 但从打车业务角度来看 , 因为打车业务有很多功能入口需要漂浮在地图之上 , 如起终点卡片、用户中心入口等 , 这种漂浮功能在技术上并不容易实现 , 而且还要保证用户触摸动作在漂浮元素与地图上发生时 , 分别派发给各自的事件系统 , Hybrid技术在这方面没有经验可以借鉴 。
带着这些挑战 , 我们进行一系列的尝试与试验 , 最终将问题解决并封装出我们打车业务的地图调用框架 , 我们称之为Native地图与Web融合框架(下文简称融合框架) 。 在这个过程中 , 我们总结出了一些经验 , 希望能给从事相关研究的同学带来一些帮助 。
2. 调研
基于混合技术开发体系 , 我们研究了市面上大部分H5页面与Native地图的应用场景 , 主要分为如下两类:
- H5页面与Native地图分别是2个独立的页面:H5业务逻辑用到地图时候 , 通过交互技术打开一个新地图页面 , 在新页面内 , Native地图按照传入参数调用对应地图组件 , 完成业务功能的展示 。
本文插图
- H5页面与Native地图位于同一页面内:两者将屏幕分割为两部分 , 如下图所示:Native地图位于上半部分 , WebView H5页面位于下半部分 。
本文插图
经过分析后 , 我们发现这两种形式都无法满足打车业务场景的需求 , 因为目前市面上主流的打车业务场景由4部分构成 , 如下图所示:
- 起终点选择面板:占据页面下半部分 , 可以上下滑动露出更多内容 。
- 地图部分:页面上半部分 , 显示起终点、线路等地图要素信息 。
- 更多菜单:左上角图标 , 点击后跳转到H5功能菜单页面 。
- 广告入口:右上角图标 , 点击后跳转到H5运营页面 。
本文插图
【|Native地图与Web融合技术的应用与实践】
上文第一类 , H5页面与Native地图分别位于两个独立页面中 , 只能满足部分地图场景的需求 , 无法布局为上图H5与地图同框显示的效果 。
上文第二类 , 实现这样的布局需要多个WebView才能实现 , 存在如下缺点:
推荐阅读
- 科学|3亿年前的文明地图,中国一直可以走到澳洲,世界是一片大陆
- 互联网|高德地图发布国内首个智慧交通物联网(IOT)平台
- 草原地图|“双11”内蒙古人消费54.2亿 呼和浩特市民消费11.9亿
- 数据|腾讯推出产业版地图WeMap并发布生态合作伙伴计划
- 行业互联网,百度|行不止,创不停——百度地图亮相2020中国智能交通年会“互联网+交通”论坛
- 智慧|腾讯推出产业版地图WeMap,“一张图”助力智慧城市精准决策
- TechWeb|华为Mate 40 Pro维修价来了:这个部件最贵,够买一部顶级旗舰
- web进阶乐园|苹果面临芯片短缺问题,iPhone12将严重缺货!
- 刘旷|高精地图新变数
- 互联网|“地图爱好者”王兴,这次要在高精地图领域搞事情
