如何使用URL打开iOS应用程序?

22
我想使用URL Scheme打开我的iOS应用程序。我已经能够使用它来打开应用程序。但是,如果没有安装该应用程序,则应该打开应用商店,用户可以下载该应用程序。这是否可能?我该如何做到这一点?
编辑: 逐步解释问题: 1. 我的收件箱中有一个带有URL的电子邮件。 2. 我点击URL,然后: i. 如果应用已安装在手机上,则会启动应用。 ii. 否则将打开应用商店以下载应用程序。
感谢。

请检查答案,看看它是否有帮助@Vivek Sinha - Ronak Chaniyara
1
已经有答案了,请在这里查看: https://dev59.com/0W865IYBdhLWcg3wceNU#3808757 - Idan
我想从一个URL打开它,而不是从其他任何应用程序。上面的链接不是我想要的。 - Vivek Sinha
你可以在这里找到教程 https://medium.com/@abhimuralidharan/universal-links-in-ios-79c4ee038272 - SHS
3个回答

7

我通过服务器端的代码进行处理:

if ((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) {
location.replace("com.myapp://");
setTimeout(function() {
                if (!document.webkitHidden) {
                    location.replace("https://itunes.apple.com/app/xxxxxxxx");
                }
            }, 25);}
else if ((navigator.userAgent.match(/android/i)) || (navigator.userAgent.match(/Android/i))) {
location.replace("https://play.google.com/store/apps/details?id=packagename&hl=en");}
else  {
location.replace("http://www.example.com");}

我把这个放在我的www.mysite.com/download页面上,然后通过宣传活动分享这个网址。


如何避免打开确认对话框? - Prakash

5
您所描述的被称为延迟深度链接(Deep Linking是指使用链接打开您的应用程序,甚至直接打开特定的内容,而Deferred意味着即使应用程序尚未安装也可以工作)。
不幸的是,在iOS或Android上目前还没有本地实现此功能的方法。URL方案无法使用,因为如果应用程序未安装,则始终会失败。苹果在iOS 9中的新Universal Links更接近了,但仍需要处理从您的网站重定向用户到App Store。
Branch.io这样的免费服务(完全透明:他们非常棒,我与他们合作)可以为您处理所有这些事情。这是覆盖如何创建电子邮件链接的文档页面,就像您所描述的那样: https://dev.branch.io/features/email-campaigns/overview/

有任何想法如何处理将用户从我们的浏览器重定向到应用商店链接吗? - Mitesh Dobareeya
你所说的“我们的浏览器”,是指Safari吗?如果是,你只需要重定向到App Store的URL(使用Javascript或HTTP 3XX),然后App Store就会打开。 - Alex Bauer
理论上,它应该在任何支持自定义URI方案的浏览器中都能够工作......这在iOS设备上应该是所有浏览器都支持的。我从未见过不能正常工作的情况,但我想这是有可能的。 - Alex Bauer

-1
如果您的应用程序未安装在设备上,则可以使用以下代码打开应用商店:
NSString *iTunesUrlofApp = @"itms://itunes.apple.com/us/app/apple-store/...";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesUrlofApp]];

尝试以下代码:

if([[UIApplication sharedApplication] canOpenURL:url]){
    // Means your app is installed, and it can be open
    [[UIApplication sharedApplication] openURL:url];
}
else{
    //Your app is not installed so, Open app store with your apps iTunes Url
    NSString *iTunesUrlofApp = @"itms://itunes.apple.com/us/app/apple-store/...";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesUrlofApp]];

}

iOS 5之后,您还可以使用https://来避免重定向。

编辑:

如果已安装,请检查链接以从URL打开应用程序:通用链接以从URL打开应用程序。


1
我在邮箱中只有一个URL,希望能够通过它打开应用(如果已经安装)或应用商店(如果未安装)。 - Vivek Sinha
OP要求从浏览器而不是他的应用程序中打开URL。 - USER_NAME
你能用Swift写这个吗? - Alberto Acuña

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接