IOS Safari检测Skype

时间:2011-06-06 08:52:01

标签: ios mobile-safari skype

在iPhone上,是否可以在网页上检测是否安装了Skype?

我问的原因是我想根据以下内容更改链接的href:如果没有安装Skype,请显示一个弹出窗口,说明Skype是什么以及如何安装它,如果安装了,请更改链接到skype:my.contact.name?call,点击即可开始通话。

我已经尝试过在Javascript to detect Skype之前讨论过的解决方案,但它仅适用于桌面浏览器,但不适用于移动设备。

1 个答案:

答案 0 :(得分:0)

以下是确定是否已安装Skype的逻辑。在else语句中,您将处理如何呈现安装Skype的安装说明。显然,这适用于为iOS应用程序实现的任何自定义URL方案,只要您根据每个应用程序相应地更新URL方案。

NSString *contactName = @"user123";
NSURL *skypeURL = [NSURL URLWithString:[NSString stringWithFormat:@"skype://%@?call", contactName]];
if ([[UIApplication sharedApplication] canOpenURL:skypeURL]) {
  [[UIApplication sharedApplication] openURL:skypeURL];
} else {
  // Display to the user how to install skype.
}

<强>更新

我刚注意到该标签是针对 Mobile-Safari 的,所以我认为这是在寻找基于网络的解决方案。我不认为你想要实现的目标是可能的。我能想到的唯一方法就是让XMLHTTPRequest调用URL来查看URL是否导致错误404.问题是执行Javascript代码的任何域都没有 skype:// scheme in it并毫无疑问会引发安全错误。这是因为Javascript不允许XMLHttpRequest进入托管代码的源域以外的域。