有没有办法判断最终用户是否能够处理<a href="tel:###">链接?

And*_*son 17 html uri url-scheme

因此,如果您想要链接到电话号码,您可以执行类似的操作

<a href="tel:18005555555">Click to Call</a>
Run Code Online (Sandbox Code Playgroud)

这在移动网站上常用,并且在桌面网站上也越来越受欢迎(主要得益于我认为的Skype).但是有些计算机/设备无法支持它.有没有办法告诉用户是否能够处理tel:links?

解决方案可以是服务器端或客户端,但我认为它需要是客户端.

Rud*_*idd -2

据我所知,出于安全原因,检测用户拥有哪些功能/应用程序可能很棘手,但您可以排除一些事情并从那里开始。

您可以尝试查看它的移动浏览器是否可以处理该链接,然后如果不能,请查看其他设备是否能够使用电话号码,例如Skype,如果不能,则仅显示正常号码。

这结合了这些问题的答案 a href tel 和标准浏览器以及Javascript 来检测 Skype?

<div>
<?php if(strstr(strtolower($_SERVER['HTTP_USER_AGENT']), 'mobile') || strstr(strtolower($_SERVER['HTTP_USER_AGENT']), 'android')) { echo '<div id="tel"><a href="tel:123456">123456</a></div>'; }else{?>
    <script>
            function skype (failureFunction) {
                var $ = jQuery;

                if ($.browser.safari || $.browser.opera) {
                    return true;
                } else if ($.browser.msie) {
                    try {
                        if (new ActiveXObject("Skype.Detection")) return true;
                    } catch(e) { }
                } else {
                    if (typeof(navigator.mimeTypes["application/x-skype"]) == "object") {
                        return true;
                    }
                }
                $('a[href^="skype:"]').click(function() {
                    failureFunction();
                    return false;
                });
                return false;
            }

        jQuery(function($) {
            if (skype()) {
                $('div#tel').html("<a href='skype:123456'>123456</a>");
            } else {    
                $('div#tel').html("<p>123456</p>");
            };
        });
    </script>
    <div id="tel"></div>
    <?}?>
Run Code Online (Sandbox Code Playgroud)

我希望这对你来说是朝着正确方向迈出的一步