如何判断tel:链接是否与能够打电话的设备相关?

9
我目前正在一个需要检测设备是否能打电话的项目中。根据它能否打电话,我需要切换视图并应用两个不同的功能:一个是使用HTML上的tel:按钮呼叫特定号码的按钮,另一个是让您输入号码,我们将使用fonality给您打电话。
目前,我已经成功安装了一些插件/库,如wurfl或terawurfl,但似乎没有一种100%可靠的方法来检测移动电话或平板电脑/台式机是否能打电话。
有没有像我在wurfl/terawurfl中错过的标签或者甚至可以通过javascript ajax调用来检测“是的,tel:可以工作”之类的服务器端或用户端解决方案?

这可能不是你问题的答案,但请看一下这个技巧:https://dev59.com/S3RA5IYBdhLWcg3www3D - Dreaded semicolon
1
我真的认为你应该重新考虑你的方法。即使手机/平板电脑有有效的SIM卡并连接到网络,它也可能被运营商或用户禁止打电话(呼叫限制);或者它可能无法拨打您特定的号码(无服务,或国际呼出受限等),除非您尝试拨打您要联系的号码,否则您将无法知道。 - Burhan Khalid
从未尝试过,但我最近读到了关于http://www.handsetdetection.com/的内容。 - danneth
handsetdetection.com我之前见过,但它是一个付费服务,我宁愿找到一种不必支付的方法......我很抠门,我宁愿编辑我的数据库上的所有用户代理而不使用他们的服务... - Jerry Tseng-shen Hsu
关于同时拥有两者,我考虑过这个问题,但我们正在努力避免这样做。 - Jerry Tseng-shen Hsu
显示剩余2条评论
1个回答

1

这里有一个我使用的PHP类,可以检测移动浏览器,你可以免费下载。 http://code.google.com/p/php-mobile-detect/

一旦正确设置了该类,您可以使用以下代码:

if ($detect->isMobile()) {
    // any mobile platform
    // place telephone code here
}

或者您可以更具体地说明:

if($detect->isiOS()){
    // code to run for the Apple iOS platform.
}

这通常用于创建移动网站,但它也适合您的目的 :)


这个解决方案实际上是利用用户代理中的模式而不是使用数据库来完成的... 此外,您可以更改它并创建一个新类别。看起来是一个有用的插件,但让我意识到许多设备可能有电话号码,但并不是用于打电话... - Jerry Tseng-shen Hsu
非常正确,移动技术很棒,未来会变得更好。我很高兴这个对你有用,这样可以节省很多时间和工作量!我在为移动优化的网站使用它。 - Peter Stuart

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接