尝试加载自定义 URL 方案时不提示用户安装应用
Don't prompt a user to install an app when trying to load a custom URL scheme
我有一个页面,我想在安装 Instagram 应用程序时将用户重定向到该页面。该部分运行良好,但当用户未安装该应用程序时,它会提示他们前往应用程序商店并下载该应用程序,这不是我想要的。
我在 Safari 的 OS X 上看到了这种行为,所涉及的 HTML 是({username} 将由我的应用程序根据提交表单的用户填充):
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0; url=instagram://user?username={username}">
</head>
<body>
<div>
Taking you to Instagram...
</div>
<script src="https://code.jquery.com/jquery-1.11.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
setTimeout(function() {
window.location = "https://instagram.com/{username}";
}, 200);
});
</script>
</body>
</html>
编辑
具体来说,发生的事情是行 <meta http-equiv="refresh" content="0; url=instagram://user?username={username}">
显示以下对话框:
我希望该对话框不显示,让 "window.location =" 接管并将用户重定向到浏览器中的 Instagram。
我的问题是如何修改 "instagram://" 重定向以不要求用户在他们的机器上安装 Instagram 应用程序?
没有(官方)方法可以在浏览器中检测是否安装了应用程序(如 Instagram),因此您不能在不提供替代方案的情况下使用自定义 url 方案。您应该让最终用户选择并提示打开网站(https 方案)或应用程序(Instagram 方案)。
用户将知道是否安装了该应用程序。
如果您已经知道用户安装了 Instagram 应用程序,您可以查看浏览器代理以查看您是否在 iOS 设备上。
我有一个页面,我想在安装 Instagram 应用程序时将用户重定向到该页面。该部分运行良好,但当用户未安装该应用程序时,它会提示他们前往应用程序商店并下载该应用程序,这不是我想要的。
我在 Safari 的 OS X 上看到了这种行为,所涉及的 HTML 是({username} 将由我的应用程序根据提交表单的用户填充):
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0; url=instagram://user?username={username}">
</head>
<body>
<div>
Taking you to Instagram...
</div>
<script src="https://code.jquery.com/jquery-1.11.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
setTimeout(function() {
window.location = "https://instagram.com/{username}";
}, 200);
});
</script>
</body>
</html>
编辑
具体来说,发生的事情是行 <meta http-equiv="refresh" content="0; url=instagram://user?username={username}">
显示以下对话框:
我希望该对话框不显示,让 "window.location =" 接管并将用户重定向到浏览器中的 Instagram。
我的问题是如何修改 "instagram://" 重定向以不要求用户在他们的机器上安装 Instagram 应用程序?
没有(官方)方法可以在浏览器中检测是否安装了应用程序(如 Instagram),因此您不能在不提供替代方案的情况下使用自定义 url 方案。您应该让最终用户选择并提示打开网站(https 方案)或应用程序(Instagram 方案)。 用户将知道是否安装了该应用程序。
如果您已经知道用户安装了 Instagram 应用程序,您可以查看浏览器代理以查看您是否在 iOS 设备上。