我已经在App Store上有一个已注册自定义URL方案的应用程序。 我为新版本的应用实施了Firebase动态链接。 在测试新链接时,当我打开安装在iOS 10上的旧应用程序的FDL时,我会被重定向到App Store以更新应用程序。 当我在iOS 8上安装旧应用程序打开FDL时,会打开旧应用程序,因为触发了我的URL方案的openUrl。我的应用程序因此而崩溃,因为旧的应用程序无法处理此类链接。 我预计在iOS 8上它还会将我重定向到App Store以像在iOS 10上那样更新应用程序。
即使发送imv = min_app_version(如here所述)作为FDL的一部分也无济于事。
为什么iOS 8和10之间的这种行为有所不同?有什么方法可以阻止iOS 8上发生这种情况吗? 谢谢。
答案 0 :(得分:2)
iOS 8确实支持自定义URL方案,iOS 8也不支持Universal Links。由于这些原因,Firebase动态链接将使用自定义URL方案来检测您的应用程序是否已在iOS 8上安装/未安装(并打开应用程序)。
iOS 9及更高版本对自定义URL方案没有很好的支持,而且这些操作系统都有通用链接。 Firebase动态链接将在那里使用通用链接。
关于imv
:我们提供imv参数,但与Android相反,我们不知道已安装的iOS应用程序的版本。我们希望App能够处理imv
。例如,如果打开链接的应用程序的版本号低于imv
中指定的版本号,则应向用户显示消息并重定向到AppStore进行升级。
解决此问题的一种方法是创建在已发布的App版本中不存在的新自定义URL方案。通过这种方式,Firebase动态链接将无法打开崩溃的旧应用程序。