type
status
date
slug
summary
tags
category
icon
password
介绍
Universal Link, URL Schemes 是 iOS 系统中用于从外部打开 app 进行跳转的一种方式; AppLink 和 DeepLink 则是 Android 系统中用于从外部打开 app 进行跳转的方式。
URL Schemes
URL Schemes 是 iOS9 之前一直在使用的跳转方式,可以在 App 间跳转,也可以通过在 Safari 中输入
schema:// 进行跳转。这种方式会在网页中显示一个: 在 APPName 中打开链接吗 的弹窗,如果未找到对应的 schemes url, 则会提示 Safari浏览器打不开该网页,因为网址无效。。 需要在 info.plist 里配置app 的 scheme urlUniversal Link
Universal Link 是 iOS9 之后出现的新技术,必须通过
https:// 进行跳转。如果在手机中找到要跳转的 app, 则会在顶部显示个是否打开app 的条幅;如果未找到app, 则正常显示该网页。这种方式除了需要在 xcode 中对项目进行配置外,还需要创建一个 apple-app-site-association 文件上传到项目的服务器上。DeepLink
DeepLink 是在 Android 上类似于 iOS 上URL Schemes 的方式。DeepLink 可以让用户进入到指定的 Activity, 系统可能会弹出一个选择可以处理此类链接的应用列表。
AppLink
AppLink 是在 Android 上类似于 iOS 上Universal Link 的方式, 可以直接从网站打开app 而无需用户选择,AppLink 也是需要创建一个文件上传到服务器。
使用
安装
这里介绍下 uni_link插件的使用.
flutter pub add uni_links配置
URL Scheme
修改
ios/Runner/Info.plist此时就可以使用
YOUR_SCHEME://ANYTHING 打开appUniversal Link
- 创建
com.apple.developer.associated-domainsentitlement 文件
- 创建
apple-app-site-association文件,无后缀,内容是个json格式,类似这种
- 将上面生成好的 apple-app-site-association 上传到 web server
- 等待生效(有时很久有时很快,最长24h), 可以在
https://search.developer.apple.com/appsearch-validation-tool/官方网站查看状态.
需要把 app 删掉重装. 需要把 app 删掉重装. 需要把 app 删掉重装.
- 在safari 中打开你配置的域名就可以了
APPLinks 和 Deep Links
- 修改
android/app/src/main/AndroidManifest.xml文件(最好是用Android Studio 的 app link tool 生成,简单方便)
- AppLink 的话还需要 上传
/.well-known/assetlinks.json文件到服务器(https://domain.name/.well-known/assetlinks.json)
- 在 Chrome 中打开你配好的链接
AppLink不能直接在地址栏里输入,需要用 location.href= 这种跳转的方式才能打开appAppLink不能直接在地址栏里输入,需要用 location.href= 这种跳转的方式才能打开appAppLink不能直接在地址栏里输入,需要用 location.href= 这种跳转的方式才能打开app
接收数据
Android 12+ 0个已验证的链接 问题
可以使用 adb shell pm get-app-links package_name 检查sha 是否正确,不正确的话在Android 12+ 上是不会通过验证的。手机上可能需要能连接到谷歌(你懂的)
- 作者:Vitta
- 链接:https://tangly1024.com/article/2ba0a4b6-7ba3-420c-92b2-cdbc836f03c4
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

