Android 当设备中没有安装应用程序时,如何修复iOS中的深度链接?

Android 当设备中没有安装应用程序时,如何修复iOS中的深度链接?,android,ios,codeigniter,deep-linking,Android,Ios,Codeigniter,Deep Linking,我正在使用android和iOS的深度链接功能,我的后端是CI。安装应用程序时,深度链接对Android和iOS都有效。但是如果应用程序还没有安装,那么我就面临这个问题 我试过这样做: 当任何用户单击链接时,首先它将重定向到浏览器,然后从后端代码检查客户端设备类型。如果设备是Android,则我将其重定向到Android应用程序,如果设备是iOS,则重定向到iOS应用程序。 但当应用程序尚未安装时,它就会停止工作 对于Android,我已经输入了以下代码: header("Location: m

我正在使用android和iOS的深度链接功能,我的后端是CI。安装应用程序时,深度链接对Android和iOS都有效。但是如果应用程序还没有安装,那么我就面临这个问题

我试过这样做: 当任何用户单击链接时,首先它将重定向到浏览器,然后从后端代码检查客户端设备类型。如果设备是Android,则我将其重定向到Android应用程序,如果设备是iOS,则重定向到iOS应用程序。 但当应用程序尚未安装时,它就会停止工作

对于Android,我已经输入了以下代码:

header("Location: my.special.scheme://other/parameters/here")
对于iOS,在URL之前添加了应用程序方案


我想我已经描述了我所有的场景。请指导我在未安装应用程序时如何将其重定向到app store或特定页面。

基本上,您尝试使用上面提供的URI方案进行深度链接(
my.special)。scheme://other/parameters/here
),但由于未安装应用程序,因此失败。在这种情况下,您无法捕获故障并将用户重定向到其他位置

您可以将BE设置为返回类似以下内容的内容:

window.location.href = "my.special.scheme://other/parameters/here";
setTimeout(function () {
    window.location.href = ...store_link_for_your_app..;
}, 1000);
这样,如果深度链接失败,1s后您将得到重定向

重要提示:

  • 并非所有浏览器都支持通过URI的深度链接方案。例如,在Chrome中,这将失败。在这里,你必须使用意图,明白吗
  • 在iOS 9+中,如果未安装应用程序,safari浏览器将阻止URI方案的使用-您将在屏幕上看到有关URL有效性的错误。在这里,您需要实现通用链接,请参见

我忘了谢谢你,伙计。对不起。它对我有用。再次感谢你。当然,没问题!听到这个消息很高兴:-)