iOS端Sygic自定义URL无法生效,请求路由创建技术支持
在iOS上通过自定义URL Scheme调用Sygic加载.sif行程文件的实现指南
我来帮你梳理下用自定义URL Scheme在Sygic里加载.sif行程文件的正确姿势,结合你给出的信息,咱们一步步确认关键点:
一、URL Scheme的正确格式
你用的com.sygic.aura://route%7Cmyitinerary.sif是URL编码后的格式,解码后是com.sygic.aura://route|myitinerary.sif,这个格式是符合Sygic官方要求的,但要注意两个细节:
- 确保.sif文件的路径是Sygic能访问到的位置:如果是你的APP内存储的文件,需要配合
file://协议带上完整路径;如果是共享到Sygic的文件,要确认文件名和存储路径完全匹配 - 编码必须准确:
|符号必须URL编码为%7C,你这部分的处理是对的,不用调整
二、.sif行程文件的格式校验
你给出的.sif片段需要保证完整合法的JSON结构,几个核心注意事项:
- 核心字段不能缺:
name、version、routeParts是必填项,routeParts里的waypointFrom必须和对应的waypointTo(你片段里没写完)搭配,而且经纬度值是Sygic专用的*10^6整数格式(比如你写的lon: -315442对应实际经度是-0.315442) directives里的allowItineraryEdit设为true是合理的,能允许用户后续编辑行程routeParts里的map字段要和你当前Sygic安装的地图版本匹配,比如NT:2017.09要确保你的Sygic客户端支持这个版本的地图包,不然会加载失败
给你补全一个完整的合法.sif示例参考:
{ "name": "test", "version": "2.2", "directives": { "allowItineraryEdit": true }, "routeParts": [ { "properties": { "routeMappingType": "none", "precomputed": false, "map": "NT:2017.09" }, "waypointFrom": { "lon": -315442, "lat": 5149939, "lonNavi": -315442, "latNavi": 5149939, "name": "Start Point" }, "waypointTo": { "lon": -320000, "lat": 5150000, "lonNavi": -320000, "latNavi": 5150000, "name": "End Point" } } ] }
三、常见问题排查
如果遇到调用失败的情况,可以按这几点排查:
- Sygic无响应:确认你的iOS APP已经在
Info.plist的LSApplicationQueriesSchemes数组里添加了com.sygic.aura,否则系统会阻止你的APP调用Sygic的URL Scheme - 行程加载失败:先用JSON校验工具检查.sif文件的格式是否合法,确保所有必填字段都存在,地图版本和客户端匹配,经纬度值格式正确
- 文件访问问题:如果是你APP内的.sif文件,需要把文件共享到Sygic可访问的目录,或者使用Sygic官方文档指定的文件路径格式
内容的提问来源于stack exchange,提问作者Selva
相关产品推荐
相关产品推荐

