如何检测打开“twitter://”URL是否会成功?

时间:2012-07-20 12:06:22

标签: javascript twitter url-scheme

我想使用Twitter应用程序从我的网络应用程序发送推文,而不是在安装推特客户端时使用推特按钮。

如果我在安装了Twitter应用程序的iPhone或Mac上,则在将Web应用程序重定向到“twitter://”网址时会打开此应用程序。 (见http://handleopenurl.com/scheme/twitter

但是,如果我只想在未安装Twitter应用程序的地方显示Twitter按钮,我该如何检查?假设我有这个代码。 twitter_app_installed()应该怎样?有没有办法检查window.location="twitter://...";是否无效?

<div class="twitter-button"><a href="https://twitter.com/share" class="twitter-share-button" data-url="http://google.com" data-text="Hello World">Tweet</a></div>
<div class="twitter-app-button"><a href="twitter://post?message=Hello%20World%20http://google.com">Tweet</a></div>

<script>
function twitter_app_installed() { /* check if window.location="twitter://"; works */}
$(document).ready(function() {
  if (twitter_app_installed()) $('.twitter-app-button').show();
  else $('.twitter-button').show();
});
</script>

加号:是否有正确的方法将网址添加到twitter://方案?

1 个答案:

答案 0 :(得分:-1)

似乎无法进行此类检查。

我认为(在iphone上)最好的想法是:

a)始终显示&#34;下载应用程序&#34;在第一次用户访问

b)在按钮点击事件上执行类似的操作:

setTimeout(function () { 
    window.location = "your store url here";    
}, 25);
document.cookie="is_app_installed=true"
window.location = "appname://";

仅当应用程序未安装时才会触发设置超时

c)从第二次用户访问,您可以使用cookie来检查应用程序是否已安装。

这个approch有很多缺点(如果用户卸载应用程序或者不在iTunes上安装它会失败),但可能是你唯一能做的事情。