【发布时间】:2011-05-23 04:26:07
【问题描述】:
iOS 上的 iTunes、App Store 和 YouTube 清楚地注册了 http://... URL 方案来打开他们的应用程序。
任何人都可以做到这一点,而不仅仅是您自己的协议?
我想这样做的原因是我正在为一个节日开发一个应用程序。我想“拦截”网站上特定页面的链接并启动应用程序(如果已安装)。
到目前为止,我没有太多运气
【问题讨论】:
标签: ios url-scheme
iOS 上的 iTunes、App Store 和 YouTube 清楚地注册了 http://... URL 方案来打开他们的应用程序。
任何人都可以做到这一点,而不仅仅是您自己的协议?
我想这样做的原因是我正在为一个节日开发一个应用程序。我想“拦截”网站上特定页面的链接并启动应用程序(如果已安装)。
到目前为止,我没有太多运气
【问题讨论】:
标签: ios url-scheme
对于“http://”网址(以及我认为 Apple 和 Spotify 所做的),您可以这样做:
注册自定义 URL 方案 like the other answers have shown。
将您的 HTTP URL 设置为指向真实网页。
在该页面上放置一个脚本以重定向到您的自定义 URL(如果是在 iOS 上)。
例如,这里有一个示例页面,它将带你到特定用户的 Twitter 应用程序或 Twitter 网站,具体取决于你是在网络上还是在你的 iOS 设备上:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Twitter</title>
</head>
<body>
<script type="text/javascript">
var username = document.location.search.substr(1);
document.location.replace(
"standalone" in window.navigator ?
'twitter:@'+username : // iOS
'http://twitter.com/'+username); // others
</script>
</body>
</html>
【讨论】:
iOS 9 支持 Universal Links,它允许 iOS 启动基于标准 http:// URL(基于主机名)的应用程序,而无需用户通过 Safari。
它需要一些网络服务器配置(您需要一个网站),但是一旦设置,注册的应用程序将打开链接而不是 Safari。
对于没有 iOS 9 的用户,您可以使用Smart Banners 来简化体验。
【讨论】:
不幸的是,我认为你做不到。 您可以注册自己的自定义方案,例如 yourFestival:// 并将来自外部世界(SMS、电子邮件、其他应用程序)的数据传递到您的应用程序。
我在这里写了一篇关于此的博客文章:Using custom schemes and passing data between iOS apps.
我希望这会有所帮助。
【讨论】:
不行,你只能注册自定义方案。
我也看不到苹果这样做......
【讨论】:
这个问题很老了,但是自从几年后我现在看到这个页面时,在搜索同一个问题的答案时,我会添加关于现在如何做的答案:
使用通用链接。首先在 developer.apple.com 中启用“Associated Domains”或您的 App ID。然后在 Xcode 中将您的域添加为 applink(选择 Target->Signing & Capabilities->Associated Domains),然后在您的网站上创建一个 apple-app-site-association 文件。
详细说明here。
【讨论】: