深度链接
概述
NativePHP for Mobile 通过自定义 URL Scheme 和关联域支持深度链接到你的应用:
- 自定义 URL Scheme
myapp://some/path - 关联域(在 iOS 上称为 Universal Links,在 Android 上称为 App Links)
https://example.net/some/path
在每种情况下,你的应用都可以直接打开到与 /some/path 匹配的路由。
每种方法都有其用例,当你提供正确的环境变量时,NativePHP 会自动处理所有平台特定的配置。
你甚至可以在单个应用中同时使用两种方法!
自定义 URL Scheme
自定义 URL scheme 是允许应用之间传递数据的好方法。如果用户使用包含你的自定义 scheme 的深度链接时你的应用已安装,你的应用将立即打开到所需的路由。
但请注意,自定义 URL scheme 只有在应用已安装时才能工作,并且无法帮助应用发现。如果用户与他们没有安装的应用的自定义 scheme URL 交互,不会有提示安装可以加载该 URL 的应用。
要启用应用的自定义 URL scheme,在 .env 中定义它:
NATIVEPHP_DEEPLINK_SCHEME=myapp你应该选择一个对你的应用唯一的 scheme,以避免与其他应用混淆。请注意,某些 scheme 被系统保留,不能使用(例如 https)。
关联域
Universal Links/App Links 允许真实的 HTTPS URL 打开你的应用而不是在 Web 浏览器中打开(如果应用已安装)。如果应用未安装,URL 将在浏览器中正常加载。
这个流程大大增加了应用发现的机会,并提供了更好的整体用户体验。
工作原理
- 你必须通过在服务器上托管特殊文件向用户设备上的操作系统证明你的应用与你尝试重定向的域合法关联:
.well-known/apple-app-site-association(用于 iOS).well-known/assetlinks.json(用于 Android)
- 移动操作系统读取这些文件以验证链接关联
- 验证后,点击真实 URL 将打开你的应用,而不是在用户的浏览器中打开
NativePHP 自动处理所有技术设置 - 你只需要托管验证文件并正确配置你的域。
要启用应用关联域,在 .env 中定义它:
NATIVEPHP_DEEPLINK_HOST=example.net测试和故障排除
关联域通常在模拟器中不工作。在连接到可公开访问的服务器进行验证的真实设备上测试通常是确保它们正常运行的最佳方式。
如果你在让关联域打开应用时遇到问题,请尝试:
- 完全删除并重新安装应用。注册验证(包括失败)通常会针对应用进行缓存。
- 验证你的关联域验证文件格式正确并包含正确的数据。
自定义 URL Scheme 通常没有这样的限制。
用例
深度链接非常适合将用户从另一个上下文直接带到应用中的关键位置。Universal/App Links 通常是更合适的选择,因为它们可以灵活地回退到在浏览器中简单加载 URL。
它们也更有可能在两个平台上表现相同。
然后你可以在以下场景使用 Universal/App Links:
- NFC 标签
- 二维码
- 电子邮件/短信营销