我知道可以通过注册自定义方案(例如so://)直接链接到iOS中的应用程序,也可以通过iTunes链接到应用程序store 中的应用程序.

在许多情况下,理想的流程是提供链接,该链接重定向到它安装的应用程序if,如果没有,则重定向到store .这可能吗?如果可能,如何实现?

Added for clarity,场景是我从iPhone上的一封邮箱打开一个链接(Http),邀请我加入应用程序中的一个组.如果用户在该设备上安装了应用程序,它应该打开,否则http链接应该重定向到iTunes.

推荐答案

没有办法判断这个.

这个 idea 基本上是这样的:

  1. 第一次打开应用程序时,您可以从应用程序中打开Mobile Safari以访问服务器上的预定义URL
  2. 在该URL上设置了一个cookie,如appInstalled to the Users Mobile Safari
  3. 然后,使用注册的方案将用户踢回应用程序(与FB使用SSO的方式相同)
  4. 您的所有邮箱链接都指向您的网站,但在网站上,您需要判断浏览器是否为Mobile Safari,以及是否存在appInstalled Cookie
  5. 如果浏览器不是mobile Safari,或者找不到cookie,请重定向到应用store ,或者留在网页中.
  6. 如果#4的条件为真,则使用已注册方案将用户重定向到您的应用程序
  7. 如果该应用已被用户删除,因此自定义url方案失败,则您可以将故障保护重定向到应用store

说明最后两个步骤on this SO post

Ios相关问答推荐

如何在SwiftUI ScrollView中zoom 中心项目?

由于代码签名时出错,无法在iOS设备上发布iOS Maui Build

无法在所有窗口上方显示图像

SWIFT根据地球坐标修改 node 旋转

如何通过S定义的对象设置删除基于块的观察者的测试?

在TVOS中访问SWIFT中的objc++函数时发送给类的无法识别的 Select 符

如何在HStack中将sfsymbol与Text视图对齐?

如何在expo-react native中从ios平台中排除包

如何在@AppStorage中存储字体?

如何删除点击时按钮的不透明动画?

当虚拟对象附加到其网格时,如何刷新创建 ARView 的 SwiftUI UIViewRepresentable?

将 Riverpod 从 StateNotifier 修复为 NotifierProvider 以及应用程序生命周期监控

在 Swift 中,对象如何被准确地从内存中移除?

Flutter IOS 构建错误 - 在签名和功能编辑器中 Select 一个开发团队.

iOS 如何使用 Alamofire 解析 JSON 可编码数组

如何包含 Xcode 子项目标头?

SwiftUI 切换语句

如何缩小 UIImage 并使其同时变得清晰/锐利而不是模糊?

iOS在应用程序中下载并保存图像

在 iOS8 中无法获得正确的键盘高度值