Appy
← 返回博客
指南

应用内浏览器如何处理深度链接:Instagram、TikTok、Facebook、Gmail、Telegram 等

同一条链接,在 Safari 里能打开应用,到了 Instagram 里就失灵。原因在于每个应用用的是哪种浏览器,以及 Apple、Google 和 Chrome 给它定下的规则。本文依据平台文档、各应用帮助中心和已发表的研究整理而成,并介绍 Appy 如何让每一次点击都落到有用的地方。

2026年10月9日•阅读约 10 分钟

做决定的是应用,不是手机

有人在 Safari 里点你的链接时,iOS 会检查是否有已安装的应用认领了这条链接,然后打开那个应用。在 Instagram 里,这个检查可能根本不会发生,因为页面不在 Safari 里,而是在 Instagram 自己的浏览器里,每一次跳转都先经过 Instagram 的代码。

一句话概括:在应用内浏览器里,由宿主应用决定你的链接能不能出去。Apple 自己的调试技术说明 TN3155 对 Safari 以外的浏览器说得很直白:是否启用 Universal Links,由它们自己决定。下文讲的就是每个应用用的是哪种浏览器,以及这对你的链接意味着什么。

关于信息来源:本文依据 Apple、Google、Chrome 和各应用开发商的文档,以及已发表的研究。应用内浏览器常常不打招呼就变了,所以凡是较早的结论,我们都注明了日期。

一次点击背后的三种“浏览器”

应用自己的浏览器

  • iOS:由应用控制的 WKWebView;Android:通常是 WebView。
  • 应用可以放行、取消或改写每一次跳转。
  • Universal Links、App Links、URL scheme 和 intent:// 只有在应用允许时才生效。
  • 见于 Instagram、Facebook、Messenger、TikTok 和 Snapchat(Felix Krause 的 iOS 调查,2022 年 8 月)。

系统提供的应用内视图

  • iOS:SFSafariViewController;Android:Chrome Custom Tabs。
  • 会显示一个按钮,可以在 Safari 或浏览器中打开页面。
  • 据 Chrome 文档,Custom Tabs 默认会打开已安装的应用。
  • 2022 年 iOS 上的 X、Reddit 和 Telegram 用的是这种。

默认浏览器

  • 应用把链接交给系统处理。
  • Apple 表示,以这种方式打开的链接会经过 Universal Link 检查。
  • 对深度链接来说最可预期的情况。
  • 2022 年 iOS 上的 WhatsApp、Gmail 和 Slack 用的是这种;Outlook 让用户自己选。

处处适用的 iOS 规则

Apple 在文档中写明了 Universal Link 何时会打开你的应用:在浏览器或 WKWebView 中点击指向你域名的链接,以及任何由应用通过系统打开的链接。它也写明了何时不会。在地址栏里输入或粘贴的 URL 永远不会打开应用。指向用户当前页面同一域名的链接会留在浏览器里,所以如果你希望打开应用,就从网站链接到另一个子域名。

重定向是大多数营销链接都会掉进去的坑。2025 年 3 月,一位 Apple 工程师在开发者论坛上确认,用 window.location 把用户跳转过去,等同于手动输入 URL:不会打开应用。他给出的解决办法是让用户真正点一下链接。

WebKit 的开源代码还补充了两个值得了解的细节,不过这是我们对源码的解读,并非有文档的 API:应用内浏览器加载的第一个页面永远不会触发 Universal Link,而宿主应用可以随意取消任何跳转。换句话说,用户从帖子里点的第一下,恰恰可能是打不开你应用的那一下。

Android 的规则

在 Android 上,除非宿主应用的代码另作处理,WebView 会把每个被点击的链接留在自己内部。Google 的文档把 shouldOverrideUrlLoading 描述为针对特定 URL 启动 intent 的地方。如果应用没有这样做,你的 App Link、自定义 scheme 或 intent:// 地址就只会在 WebView 里加载,或者加载失败。

Chrome Custom Tabs 表现要好一些:Chrome 文档说,它们默认会在匹配的已安装应用中打开链接。另外从 Android 12 开始,普通网页链接只有在应用已针对该域名完成验证时才会打开应用,否则就进入浏览器。

Chrome 的 intent:// 链接有自己的规则:需要用户手势,不会从手动输入 URL 后的重定向或 JavaScript 定时器中启动,而且只能打开标记为 BROWSABLE 的 activity。这些是 Chrome 的规则:应用内的 WebView 并不继承它们,可能会完全忽略 intent://。开发者报告过 Android 上的 Instagram 正是如此。

带兜底地址的 intent 链接

在 Chrome 中,如果应用没有安装或没能启动,用户会被送到兜底 URL,而不是看到报错。

Android intent URL

intent://product/42#Intent;scheme=myapp;package=com.example.app;S.browser_fallback_url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.example.app;end
来源:Chrome 文档《Android Intents with Chrome》。Chrome 会在应用收到 intent 之前移除 browser_fallback_url。

逐个应用看:有据可查的部分

每一条都写明是应用开发商、平台还是已发表的研究这么说的,并附上日期。找不到可靠来源的,我们也直说。

01

Instagram

在 iOS 上使用自己的应用内浏览器,可以通过 ⋯ 菜单在默认浏览器中打开页面,但没有关闭应用内浏览器的设置(Krause,2022 年 8 月)。深度链接服务商 Branch 和 AppsFlyer 都表示,Instagram 里的自然流量链接无法通过 Universal Links 打开应用;AppsFlyer 称,在以应用为落地目标的广告中可以生效。在 Android 上,开发者报告 intent:// 链接不会被启动。

02

Facebook

Meta 帮助中心说明,在 iPhone、iPad 和 Android 上,链接会在应用内打开,点“⋯ › 在浏览器中打开”就能跳到外部浏览器。Meta 开发者博客(2018 年)解释说,对于广告,应用可以检查你的应用是否已安装。AppsFlyer 表示,Facebook 在 iOS 上会对自然内容屏蔽 Universal Links。

03

Messenger

在 iOS 上使用自己的应用内浏览器,可选择用默认浏览器打开(Krause,2022 年)。开发者报告,自定义 scheme 已经无法从 Messenger 的 iOS 网页视图中打开。

04

TikTok

在 iOS 上使用自己的应用内浏览器,而且 2022 年时没有跳出的按钮(Krause)。TikTok 的广告文档说明,TopView 广告完全不支持外部深度链接,其他广告形式则支持 Universal Links、App Links 和自定义 scheme。主页简介里自然流量链接的行为没有文档说明。

05

X

2022 年在 iOS 上使用 Apple 的 SFSafariViewController(Krause),界面里有 Safari 按钮。AppsFlyer 表示,X 的 iOS 浏览器会阻止通过 URI scheme 打开应用。

06

LinkedIn

有应用内浏览器;一份 2022 年的指南提到一个“Open web links in app”设置。LinkedIn 自己的帮助页面没有提及它,我们也没有找到关于它如何处理 Universal Links 的可靠来源。

07

Snapchat

在 iOS 上使用自己的应用内浏览器,可选择在浏览器中打开(Krause,2022 年)。Snap 的广告规范说明,web view 和 deep link 附件中不允许使用 Android intent URI,而 Universal Deep Links 只能配合 Deep Link 附件使用。

08

Gmail

2022 年在 iOS 上用默认浏览器打开链接(Krause)。在 Android 上,由“Open weblinks in Gmail”设置决定:开启时链接留在 Gmail 内,关闭时交给浏览器。

09

Outlook

Microsoft 允许用户在 Settings › Open Links With 中选择 Edge 或系统默认浏览器,IT 管理员也可以强制指定。开发者报告,链接经过 Edge 和 Safe Links 时,深度链接会在浏览器中打开。

10

WhatsApp

2022 年在 iOS 上用 Safari 打开链接(Krause)。由于 Apple 表示应用通过系统打开的链接会经过 Universal Link 检查,iOS 上来自 WhatsApp 的链接应当能到达你的应用。这是根据两个来源推断出的结论,并非 WhatsApp 的官方说法。

11

Telegram

Telegram 2026 年 6 月的更新让用户可以长按链接选择浏览器,并按网站分别设置哪些内容在 Telegram Browser 内打开。iOS 上的设置位于 Privacy and Security › Open Links in,Android 上位于 Chat Settings › In-App Browser。

12

Discord 和 Slack

Discord 有 In-App Browser 设置,2026 年 4 月的更新说明中提到过。Slack 在 2022 年的 iOS 上会打开默认浏览器,企业工作区还可以强制指定某个移动浏览器。

你能做些什么

01

始终准备商店兜底

假定在某些浏览器里应用打不开。这时链接应该把用户带到这部手机对应的商店,而不是报错页或空白页。

02

靠点击打开应用,而不是靠重定向

如果你用了落地页,就在页面上放一个用户真正去点的链接或按钮。Apple 表示,window.location 的效果等同于手动输入 URL。

03

从不同的子域名发出链接

与当前页面同一域名的 Universal Link 会留在浏览器里。把链接放在单独的子域名上。

04

广告和自然帖子用不同的链接

广告形式往往有自己的深度链接规则(TikTok TopView、Snapchat 附件、Meta 应用广告)。分开的链接能让这些规则互不干扰,你的数据也不会混在一起。

05

告诉用户怎么跳出去

对于很重要的帖子,在链接旁边加一句“点 ⋯ › 在浏览器中打开”会有帮助,因为好几个应用内浏览器都提供这个选项。

06

按 Apple 的方式测试

把链接粘贴到备忘录里,然后长按。如果没有出现应用选项,问题出在你的配置上,而不是应用内浏览器。

Appy 如何应对各种应用内浏览器

Instagram 的浏览器你管不了,但点击之后发生什么,你说了算。在 Pro 套餐下,Appy 链接会先尝试打开你的应用;如果宿主应用拦下了它,片刻之后就把手机送到对应的商店。无论用户在哪个应用里点击,都不会停在空白页或错误页上。

appy.to/promo

在任意应用里被点开

  • 已安装应用直接打开你的应用(Pro)
  • 未安装应用App Store 或 Google Play
  • 华为手机华为应用市场
  • 电脑你的网站
一条链接适用于所有渠道,从 TikTok 简介到 WhatsApp 消息,再到印出来的二维码。每个渠道建一条链接,Pro 报表会按国家、设备和来源告诉你哪个渠道带来了点击。

关于隐私

2022 年 8 月,研究者 Felix Krause 发现,Instagram 和 Facebook 会向在其 iOS 应用内浏览器中打开的页面注入 JavaScript,而 TikTok 的浏览器订阅了键盘输入和点击事件。Meta 称这段脚本是为了遵守 App Tracking Transparency,TikTok 则称这些代码用于调试和性能监测。Apple 的 SFSafariViewController 完全不允许应用注入代码。

延伸阅读

应用内浏览器常见问题

为什么我的链接在 Safari 里能打开应用,在 Instagram 里却不行?

在 Safari 里,iOS 会检查是否有应用认领了这条链接。而在 Instagram 里,页面是在 Instagram 自己的浏览器中打开的,由 Instagram 的代码决定链接能不能出去。Apple 表示,是否支持 Universal Links 由第三方浏览器自行决定。

Universal Links 在 SFSafariViewController 中有效吗?

Apple 的文档列出了 Safari、WKWebView 和通过系统打开的链接,对 SFSafariViewController 既没说可以,也没说不行。不过它确实提供了一个在 Safari 中打开页面的按钮。

为什么我的 JavaScript 重定向打不开应用?

一位 Apple 工程师确认,window.location 等同于在地址栏输入 URL,而这永远不会打开应用。改为让用户点击一个真正的链接。

intent:// 链接在 Android 的应用内浏览器中有效吗?

在 Chrome 中有效,需要用户手势,并且可以回退到一个 URL。基于 WebView 的应用内浏览器不遵循 Chrome 的规则,可能会忽略它们;开发者报告 Instagram 就是这样。

有办法强制 Instagram 打开 Safari 吗?

你这边做不到。用户可以通过 ⋯ 菜单在自己的浏览器中打开页面。x-safari-https 之类没有文档的技巧确实存在,但 Apple 建议不要依赖未公开的 URL scheme。

Appy 在应用内浏览器里会怎么做?

在 Pro 套餐下,Appy 链接会先尝试打开你的应用。如果应用内浏览器拦下了它,片刻之后会把手机送到对应的商店:App Store、Google Play 或华为应用市场。没有人会停在空白页上,而且每一次点击都会出现在你的报表里。

继续探索

指南
2026年10月1日
6 分钟阅读

用自己的域名做 App 短链接:实用指南

为什么链接最好放在自己的域名上,子域名怎么选,三步完成设置,以及已经发出去的链接和二维码会怎样。

custom domain
branded short links
url shortener
qr codes
阅读文章
指南
2026年7月16日
8 分钟阅读

面向深度链接、Universal Link、应用商店和网页的参数传递

了解如何在 App 打开、应用商店跳转、Universal Link 和网站访问之间保留活动与上下文参数,同时保护目标中的固定值。

parameter forwarding
deep linking
universal links
app stores
阅读文章
指南
2025年10月8日
8 分钟阅读

深度链接 vs 通用链接:完整对比

了解深度链接与通用链接的核心差异、适用场景,以及如何正确实现。

deep linking
universal links
comparison
mobile apps
阅读文章

想看更多内容?浏览 博客全部主题.

把流失的点击变成安装

一条 Appy 链接搞定所有渠道:先尝试打开你的应用,打不开就回退到 App Store、Google Play 或华为应用市场,无论用户在哪个应用里点击。一分钟就能建好。