如何使用 url 打开 ios 应用程序?

Posted

技术标签:

【中文标题】如何使用 url 打开 ios 应用程序?【英文标题】:How to open ios app using url? 【发布时间】:2016-06-22 08:39:52 【问题描述】:

我想使用 URL 方案打开我的 ios 应用程序。我可以使用它打开应用程序。 但我想如果未安装应用程序,则应打开应用程序商店,用户可以在其中下载应用程序。 这可能吗?我该怎么做?

编辑 逐步解释问题:

    我的收件箱中有一封带有 url 的邮件。 然后我点击 URL 一世。如果应用程序安装在手机中,应用程序将启动。 ii.否则会打开应用商店下载应用。

谢谢

【问题讨论】:

检查答案看看是否有帮助@Vivek Sinha 已经有了答案,请在此处查看此答案:***.com/a/3808757/1447518 Detecting programmatically whether an app is installed on iPhone的可能重复 我想从一个网址打开它,而不是从任何其他应用程序。上面的链接不是我想要的。 你可以在这里找到教程medium.com/@abhimuralidharan/… 【参考方案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 打开应用程序的链接:Universal links 从 Url 打开应用程序。

【讨论】:

我的邮箱里只有一个网址,我想用它打开应用程序(如果已安装)或应用程序商店(如果没有) OP 要求从浏览器而不是他的 APP 中打开 url 你能快点写这个吗【参考方案2】:

您所描述的称为延迟深度链接(Deep Linking 是指使用链接打开您的应用程序,甚至直接指向特定内容,Deferred 表示即使应用程序不可用,它也可以工作。 t 先安装)。

不幸的是,在 iOS 或 android 上还没有本地方法可以实现这一点。 URL 方案不起作用,因为如果未安装应用程序,它们总是会失败。 Apple 在 iOS 9 中的新 Universal Links 越来越近了,但您仍然需要处理将用户从您的网站重定向到 App Store

像Branch.io 这样的免费服务(完全披露:我和他们一起工作太棒了)可以为您处理所有这些。下面是文档页面,详细介绍了如何创建您所描述的电子邮件链接:https://dev.branch.io/features/email-campaigns/overview/

【讨论】:

关于如何处理将用户从我们的浏览器重定向到 App Store 链接的任何想法? “我们的浏览器”是指 Safari 吗?如果是这样,您只需重定向到 App Store URL(javascript 或 HTTP 3XX),App Store 就会打开。 理论上,它应该可以在任何支持自定义 URI 方案的浏览器中运行……iOS 上应该是所有这些方案。我从来没有见过这不起作用,但我想这是可能的。【参考方案3】:

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

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 页面并通过广告系列分享这个 URL。

【讨论】:

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

以上是关于如何使用 url 打开 ios 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 iOS 应用程序启动 Safari 并打开 URL

如何在 ios 中打开本机文件应用程序?

如何制作在 Safari for iOS Facebook Messenger 应用程序而不是应用程序内 Web 浏览器中打开的 URL

如何使用 UIApplication.shared.open 在 iOS 上选择性地打开其他应用程序

PhoneGap:如何跳过 inAppBrowser 以使用 Safari 打开 url

如何构造 FCM 推送通知以在 Flutter(Android 和 iOS)的默认系统 Web 浏览器应用中打开指定的 URL