K1.11.1deep link to specific screen设计
深链接指向应用内具体页面而非仅打开首页
别名: 深链接 · Universal Links · App Links · URL scheme
概念解释
深链接(deep link)是一条指向应用内某一屏的地址,而不是「把应用唤到前台」。邮件里的订单、推送里的会话、网页上的商品,点下去应落到那张订单、那条会话、那个商品,而不是商店首页再让人自己找。打开应用但停在默认页,链接在技术上成功了,在任务上失败了。这条只谈落点是不是那一屏,不谈应用没装时怎么办,不谈从哪回来,也不谈参数要不要校验。
机制
系统把一条 URL 或应用链接交给已声明该路由的应用。应用启动后若只执行默认根页面,路由信息被丢掉,人看到的是冷启动,不是链接所描述的对象。失败常见于三种实现:只注册了打开应用、没注册路径;路径注册了但登录墙把人拦在首页且不记住原目标;对象已下架仍打开首页而不是「这个条目不在了」。首页有搜索框并不能补救:人从链接带来的是一个标识符,再搜等于把标识符扔掉。多任务里若该应用已经停在别的页,有的系统会只把应用唤到前台、不执行新路由,人会以为链接没生效。
边界
需要先完成不可跳过的合规或安全步骤(实名、青少年模式)时,可以先走这些步骤,但走完必须继续原目标,而不是留在首页。第一次安装后的引导可以插在落点前,同样要把原路由存住。没有对应实体的链接(活动已结束、商品下架)应落到解释页,这仍是「指向具体结果」,不是指向首页。桌面浏览器的锚点翻页和移动深链接不是同一套路由,不能用网站首页重定向来冒充应用内落点。
怎么落地
- 为每个可被外部引用的对象提供稳定路由,启动后按路由打开对应屏,而不是先打开默认页再忽略路径。
- 若必须插入登录或引导,把原路由写成待办,完成后再执行;不要在登录成功后固定跳到首页。
- 验证:从邮件或笔记里点一条指向二级对象的链接,应用应直接打开该对象。若先出现首页,记下到达该对象所需的额外搜索或点击,那就是这条深链接丢掉的距离。