Android 您可以从HTTP url方案打开iOS应用程序吗?
我想打开我的iOS应用程序,就像在Android上一样,也就是说,使用特定的web地址而不是自定义URL协议 这就是它在Android上的工作原理。Reddit is Fun应用程序就是一个很好的例子:Android 您可以从HTTP url方案打开iOS应用程序吗?,android,ios,url-scheme,custom-url,Android,Ios,Url Scheme,Custom Url,我想打开我的iOS应用程序,就像在Android上一样,也就是说,使用特定的web地址而不是自定义URL协议 这就是它在Android上的工作原理。Reddit is Fun应用程序就是一个很好的例子: 用户在其邮件应用程序、浏览器应用程序或其他等效程序中 用户点击reddit帖子的链接。对于本例,链接为“” Reddit很有趣应用程序已设置为处理“”链接 Android会显示一个对话框,为用户提供以下选项: 在Web浏览器中打开链接 在Reddit中打开链接很有趣 我一直在尝试查找有关
- 用户在其邮件应用程序、浏览器应用程序或其他等效程序中
- 用户点击reddit帖子的链接。对于本例,链接为“”
- Reddit很有趣应用程序已设置为处理“”链接
- Android会显示一个对话框,为用户提供以下选项:
- 在Web浏览器中打开链接
- 在Reddit中打开链接很有趣
编辑:看起来没有办法在iOS上完全实现我想要的。但是,对于如何做,他有一些很好的建议。我希望自2009年以来情况会有所改变。你的发现是正确的,这只能通过自定义方案来实现。让我告诉你,在iOS上,大多数应用程序是如何实现的,我也希望“Reddit很有趣” Http链接通过调用与应用程序关联的自定义URL,将您重定向到一个网页,该网页将检查您的iOS应用程序是否已安装 如果返回失败,则加载网页,否则将使用特定视图启动应用程序
我希望这就是您所寻找的。您实际上可以这样做,但这将要求您在服务器上为您想要链接到的每一篇reddit文章托管一个页面。我们自己构建了一个动态版本,这样我们就不必每次手动创建页面,我们还可以检测iOS和Android。但要手动创建页面,请执行以下步骤: 如果您想向发送电子邮件链接,则需要创建一个页面并将其托管在服务器上(例如)。应该是这样的:
<!DOCTYPE html>
<html>
<body>
<script type="text/javascript">
window.onload = function() {
// Deep link to your app goes here
document.getElementById("l").src = "reddit://r/example";
setTimeout(function() {
// Link to the App Store should go here -- only fires if deep link fails
window.location = "http://reddit.com/r/example";
}, 500);
};
</script>
<iframe id="l" width="1" height="1" style="visibility:hidden"></iframe>
</body>
</html>
window.onload=函数(){
//您的应用程序的深层链接位于此处
document.getElementById(“l”).src=”reddit://r/example";
setTimeout(函数(){
//应用商店的链接应该放在这里——只有深层链接失败时才会触发
window.location=”http://reddit.com/r/example";
}, 500);
};
现在你可以链接到你的服务器,无论用户是否拥有该应用,它都会在iOS上适当打开 这项功能现在在ios上启用,他们称之为“通用链接”: 如果您的源代码是基于html的,则有一个Cordova插件支持此功能:
使用自定义url方案。在重定向页面上,使用超时处理程序将用户重定向到web版本。不完美,但很接近。Android处理事情的方式与iOS不同。实际上,您可以指定一个web地址作为自定义URL。这对Reddit来说尤其重要,因为它很有趣,因为它是第三方应用程序,他们无法将javascript嵌入Reddit上的页面。Android设备只是检测到用户正在访问reddit.com网页,查看其注册的应用程序,发现某个应用程序可以处理该URL,因此它为用户提供了选择他们希望继续使用哪个应用程序的选项。这是一个出色的系统,我对iOS没有类似的系统感到失望。我想这是因为iOS比android更封闭,而且考虑隐私比分享更重要。当您看到应用程序之间的共享受到限制的总体方法时,这是有意义的。无论如何,在用户的易用性和开放性之间,还是在更可控和更安全之间,争论仍将继续。