IOS Safari 检测 Skype

标签 ios mobile-safari skype

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

我问的原因是我想基于此更改链接的 href:如果未安装 Skype,则显示一个弹出窗口,说明 Skype 是什么以及如何安装它,如果已安装,则更改链接到 skype:my.contact.name?call 这样点击就会开始通话。

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

最佳答案

这里是判断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,因此我认为这是在寻找基于 Web 的解决方案。我不认为你想要实现的目标到那时是可能的。我能想到的唯一方法是让 XMLHTTPRequest 调用 URL 以查看 URL 是否导致错误 404。问题是您从中执行 Javascript 代码的任何域都没有 skype:// 方案,无疑会引发安全错误。这是因为 Javascript 不允许 XMLHttpRequest 进入托管代码的原始域以外的域。

关于IOS Safari 检测 Skype,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6249621/

相关文章:

c# - C# 中的 Skype 插件

iOS TCP/IP over USB 与 Linux 端

ios - 无法让我的扑克逻辑正确检查 "Card"对象的 NSMutableArray 中的同花顺

iphone - 在 iOS 中传递委托(delegate)

objective-c - 使用 iOS SDK 4.2 的 UIWebView 中的 XSLT

CSS Columns Bug — 使用 :checked pseudo class 时在移动设备上中断

iOS - 部分界面未显示在模拟器中 - Interface Builder

html - 当页面宽度改变时,移动 safari 页面会放大

skype - IP 电话 - 匿名连接 2 个用户?

bots - Microsoft bot 框架获取用户时区