如何使用未安装在设备中的应用程序的urlscheme

我在商店有一个应用程序,它允许显示第一个视图中的项目列表,第二个视图中的项目细节。

我使用urlscheme访问来自外部来源(例如Facebook的一个项目的细节)

我的问题:如果应用程序没有安装在设备中,是否有任何方式允许下载应用程序,并打开它在正确的项目(使用URLscheme)

预先感谢

对于iOS> 9

if ([[UIApplication sharedApplication] openURL:SchemaURL] == false) { [[UIApplication sharedApplication] openURL:iTunesAppURL]; } 

您所描述的内容称为“ 延迟深入链接”Deep Linking)Deep Linking是指使用链接直接打开您的应用程序到特定的内容,而Deferred意味着即使应用程序没有先安装也能正常工作)。

不幸的是,在iOS或Android上都没有原生的方法来实现这一点。 URLscheme不起作用,因为如果未安装应用程序,它们总是会失败并显示错误。 苹果公司新推出的Universal Links在iOS 9+上更接近于,如果应用程序没有安装,至less不会触发错误 ,但是您仍然必须处理将用户从您的网站redirect到App Store。 使用Universal Links进行安装后,您无法将上下文传递给应用程序,因此无法将用户发送到正确的项目,而实际上在很多地方都不支持。

为了使这个工作,你需要一个远程服务器来closures循环。 你可以自己创build ,但是你真的不应该有很多原因,其中最重要的是你有更重要的事情要做。 像Branch.io这样的免费服务(完全披露:他们非常棒,我与他们合作)或Firebasedynamic链接可以为您处理所有这些。

首先查询该URLScheme并了解应用程序的状态是否已安装。 如果没有安装,给他/她一个popup窗口,从应用程序商店安装该应用程序。 点击确定后 ,您可以将用户导航到app store链接。