<font color="#569230"><b>早期 :<br>URL Scheme<br></b></font><b><font color="#569230">不能处理未安装</font></b><br>
<b><font color="#569230">在iOS 9和Android 6 Marshmallow之前</font></b>,移动端主要通过URL Scheme实现DeepLink。每个应用可以定义自己的URL Scheme,当用户点击一个带有该Scheme的链接时,操作系统会识别这个Scheme并启动相应的应用。<br>
<b><font color="#569230">URL scheme的格式:</font></b>scheme:[//authority[path]query#fragment<br><b><font color="#569230">Scheme:业务标识 host:域名,用来指定对应的页面 <br>Path:页面路径,可用也可以不用 query:携带的参数</font></b><br>
<b><font color="#569230">URL scheme的优势:</font></b><br><b><font color="#569230">1 直接</font></b>:URL Scheme允许用户直接从浏览器或其他应用跳转到另一个应用的特定页面。<b><font color="#569230">2 简单:</font></b>大多数应用开发者都能够通过配置应用的AndroidManifest.xml或Info.plist文件来支持URL Scheme<br><b><font color="#569230">3 通用:</font></b>几乎所有的移动操作系统都支持通过URL Scheme打开应用
<b><font color="#569230">URL scheme的劣势:</font></b><br><b><font color="#569230">1 用户体验中断:</font></b>在某些平台,特别是iOS的早期版本中,通过URL Scheme打开App时,用户可能会遇到一个确认对话框,中断用户的体验流程。<b><font color="#569230">2 兼容性挑战</font></b>:不同的操作系统和版本对URL Scheme的支持程度不同,开发者需要为不同的平台和版本进行适配,增加了开发和维护的复杂性<b><font color="#569230">3 不能处理未安装:</font></b>用户未安装该应用的场景,不能响应<br>
<b><font color="#569230">特殊Deeplink</font></b><br><font color="#569230"><b>Android:App Links,<br>iOS:Universal Links</b></font><br>都解决用户在未安装App<br>场景下的跳转问题。<br>
<b><font color="#569230">iOS9以后:</font></b> <br>Universal<br> Links<br><br>
<b><font color="#569230">苹果公司在2015年推出Universal Links</font></b>,允许iOS 9及以上版本的用户通过点击HTTPS<br>链接无缝跳转到App内指定页面,无需用户确认。如果用户没有安装对应的应用,<br>Universal Links会fallback到一个网页,用户可以从那里下载应用。<br>
<b><font color="#569230">UniversalLinks链接样式:</font></b>https://xiaohongshu.com/path?article_id=12345
Universal links的优势:<br><b><font color="#569230">1 无缝用户体验:</font></b>已安装该App时,不需要加载任何页面以及判断提示,<br>能够立即唤醒App,未安装App,则跳去对应的web link(自定义页面)<br><b><font color="#569230">2 安全性强:</font></b>使用 SSL/TLS 加密,确保了链接的安全性。<b><font color="#569230">3 适配场景高:</font></b>绝大多数平台都支持Universal Link,能被搜索引擎索引,<br>iOS微信7.0.5版本也解除了对Universal Link的限制,目前微信7.0.5<br>以上版本已经能流畅运行Universal Link。<b><font color="#569230">4 跨设备跨app兼容:</font></b>在支持 iOS 和 macOS 的设备上工作;<br>支持从其他App中的UIWebView中跳转到目标App。<br>
Universal links 的劣势:<br><b><font color="#569230">1 平台限制:</font></b>仅支持苹果的操作系统,Android 设备上无法使用。<br><b><font color="#569230">2 配置复杂性:</font></b>需要在应用和服务器两端进行配置,包括设置 SSL 证书和<br> Apple App Site Association (AASA) 文件。<br><b><font color="#569230">3 维护成本:</font></b>SSL 证书和 AASA 文件可能需要定期更新,增加了维护工作。
Android 操作<br>系统在 6.0以后:<br>App Links<br>
<br>Android 操作系统在 6.0 (API 级别 23) 及以上版本中引入的一项技术,<br>用户点击H5链接时能直接跳转到App指定页面,无需额外确认。<br>但由于某些限制,App Links在国内的使用不太方便,<br>国内许多应用仍使用URL Scheme<br>
App links的优势:<br><b><font color="#569230">1 无缝用户体验:</font></b>App Links提供了一种无需用户干预即可直接<br>打开应用特定内容的方法;即使用户没有安装应用,<br>通过HTTP/HTTPS链接仍可以访问网页内容。<b><font color="#569230">2 安全性:</font></b>通过网站关联和自动验证机制,确保只有授权的应用可以处理特定的链接。<b><font color="#569230">3 降低用户选择成本:</font></b>避免了在多个应用中选择一个来打开链接的对话框,减少了用户操作步骤。<b><font color="#569230">4 支持Instant Apps:</font></b>(Instant Apps是谷歌推出的一种无需安装即可运行的应用程序,)<br>可以使用App Links直接打开一个未安装的Instant App。<br>
App links的弊端:<br><b><font color="#569230">1 配置复杂</font></b>:需要在应用和网站端进行详细配置,包括intent-filter的设置和Digital Asset Links文件的生成。<b><font color="#569230">2 环境限制:</font></b>在国内由于网络限制,App Links的验证可能会失败,导致退化到传统的deep link。<b><font color="#569230">3 兼容性问题:</font></b>App Links仅在Android 6.0 (API 级别 23)及以上版本中可用,<b><font color="#569230">4 测试困难:</font></b>官方提供的测试工具可能不够稳定,需要开发者自行寻找解决方案进行测试。<font color="#569230"><b>5 设备差异:</b></font>不同设备和厂商的定制系统可能会影响App Links的行为,导致体验不一致。
<b><font color="#569230">Deferred <br>deeplink<br></font></b>延迟深度链接<br>前面技术的增强,<br><br>
可以理解为 前面一些技术的增强,<b><font color="#569230">不仅能够在用户已安装应用的情况下直接跳转到指定页面,还能在用户未安装应用时,<br>引导用户下载应用并在安装后自动跳转到之前尝试访问的页面</font></b>,<br>尤其是对于Pdd、得物、美团这类的应用可以帮助其更加便捷的促进交易。<br>
<br>
<br>
第三方服务<br>(如openinstall,<br>Branch, AppsFlyer、<br>腾讯云等)<br>
因为实际操作中需要考虑的复杂性必须针对不同用户场景和环境进行对应适配和升级,对于没有很强研发技术的公司使用第三方集成的深链能力会更具性价比和方便。<br>