【问题标题】:IOS Safari detect SkypeIOS Safari 检测 Skype
【发布时间】:2011-06-06 08:52:01
【问题描述】:

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

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

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

【问题讨论】:

    标签: ios mobile-safari skype


    【解决方案1】:

    这里是判断是否安装了 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:// em> 方案,无疑会引发安全错误。这是因为 Javascript 不允许 XMLHttpRequest 进入托管代码的源域以外的域。

    【讨论】:

    • XMLHttpRequest 可以转到其他域,但是这个域必须有这个标头 (php) header("Access-Control-Allow-Origin: *");header("Access-Control-Allow-Methods: GET, POST");header("Access-Control-Allow-Headers: *"); 我在我所有的 javascript 工作中都使用它来检测是否有这个插件的新版本跨度>
    猜你喜欢
    • 2012-07-04
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2019-03-16
    • 1970-01-01
    • 1970-01-01
    • 2018-01-25
    相关资源
    最近更新 更多