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

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

编辑 逐步解释问题:

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

谢谢

【问题讨论】:

标签: ios deep-linking url-scheme


【解决方案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。

【讨论】:

  • 如何避免打开确认对话框?
猜你喜欢
  • 1970-01-01
  • 2017-01-10
  • 2013-04-27
  • 2018-03-06
  • 2012-08-15
  • 1970-01-01
  • 2012-09-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多