有没有办法检测移动设备是否能够拨打语音电话/短信?
在网页中应用tel:和sms:链接时,这很重要.仅仅检测手机是不够的,因为平板电脑无法拨打电话,iTouch无法拨打电话等.
我对使用设备大小,UA字符串检测等的移动检测黑客不感兴趣.我想使用特征检测来确定设备是否能够进行语音呼叫/ SMS文本消息传递.我喜欢通用解决方案,但我主要对iOS/Android感兴趣.
Pau*_*ish 12
我没有看到一个明显的方式来看到sms:和tel:链接得到特殊待遇.
更新:@janogosteve下面已经确认目前没有可靠的功能检测.这看起来无法察觉.
这是检查此功能检测的综合方法.(阅读下面的jangosteve评论!)
getComputedStyle获取有关它们的大量详细信息,并将其放入对象中JSON.stringify(那些东西,所以你以后可以处理它)在iOS设备和桌面Safari/Chrome中执行上述操作
然后JSON.parse他们回到对象...并使用https://github.com/NV/objectDiff.js看看你是否能发现任何差异.
这个问题的新情节扭曲(截至2015年2月)是许多桌面浏览器现在支持点击呼叫,但是它们不会自动检测电话号码.
因此,为了嗅出电话号码自动检测或触摸功能而漂浮的漂亮技巧现在已经过时了.
自Yosemite 10.9.2以来的Mac OSX支持使用Facetime音频进行点击呼叫,而Windows 8/IE11则使用Skype进行同样的支持.不确定Chrome操作系统(环聊?).iPad使用Facetime音频通话.
从现在开始,所有Web浏览器都支持点击通话.问题是如何防止旧版浏览器和桌面操作系统用户在单击tel:链接时出错.
我创建了一个Javascript库来尝试检测tel:链接支持之前的旧桌面操作系统用户,但事实证明这是非常有问题和复杂的.
现在我的方法是:
<a>标签和桌面干脆让自动检测做在移动设备上的链接魔术我对这些解决方案中的任何一个都不是很疯狂,但是我会选择B,直到浏览器支持格局在未来发生变化.这样我可以控制<a>标签,桌面用户仍然可以点击电话#如果他们真的想要,我将来可以轻松交换.
| 归档时间: |
|
| 查看次数: |
5507 次 |
| 最近记录: |