在智能手机上检测 Caps On

Posted

技术标签:

【中文标题】在智能手机上检测 Caps On【英文标题】:Detect Caps On on smart phones 【发布时间】:2013-12-01 06:13:03 【问题描述】:

我想检测智能手机上的caps on,它们有一个小箭头,基本上是一个大写锁定。

我尝试搜索它,我所能做的就是如何在桌面上进行,即:

$('input').keypress(function(e)  
  var s = String.fromCharCode( e.which ); 
  if ( s.toUpperCase() === s && s.toLowerCase() !== s && !e.shiftKey )  
    alert('caps is on');
  
);

但这在智能手机上不起作用,我怎样才能做到这一点,甚至有可能吗?

【问题讨论】:

无法检测智能手机上的大写锁定。尝试接受this question 的答案,该方法不会 100% 有效,但总比没有好。 好的,但智能手机不仅限于 ios,无论如何谢谢 :) 我知道,但该解决方案适用于任何智能手机 :) 它只查找大写的两个连续输入。 我不认为我在这里通过 :) 检查大写锁定是完全不可能。这只是一种替代方法,显然并不理想,但不幸的是它是次佳的。要么你停止抱怨这种“违背目的”的方法,而是知道它是你能得到的最好的(目前)使用它,或者你不使用它并继续你的生活。 你也可以只放一个警告说“区分大小写”(假设这是一个密码)。 【参考方案1】:

不可能在所有使用 html/javascript/jQuery 的智能手机上检测大写锁定。事实上,更进一步,值得一提的是,事实上不可能可靠地检测到仅使用 HTML/JavaScript/jQuery 的所有智能手机的任何特定按键。例如,适用于 android 的 Google Chrome 浏览器(不一定是原生 Android 浏览器)有一个错误,即无论按下哪个键,它都会返回 0 的按键代码。也许这会在某一天得到解决,但它从第一个版本开始就存在,已经持续了几年。

如果您的目标是浏览器/智能手机的特定集合,这对您来说可能不是什么问题。例如坚持使用现有的 iOS、Windows Phone 8 和 Android 浏览器,但值得一提的是,没有涵盖所有这些的灵丹妙药解决方案。

如果您正在开发混合应用程序而不是网站,例如使用 PhoneGap,您可以选择使用本机插件来捕获按键并移交给 PhoneGap,以便您可以在 JavaScript/jQuery 中使用.

【讨论】:

是同意 chrome 浏览器..此外,它没有检测到退格的 keyup 事件,但检测到 lonhpress 退格的 keyup..

以上是关于在智能手机上检测 Caps On的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio 的问题 - 未检测到任何智能手机

您将如何进行智能手机 BLE 室内检测和定位? [关闭]

检查是不是返回我是不是在智能手机上的 JavaScript? [复制]

智能手机上音符的音高识别,pt。 2

在智能手机上使用,闪亮的交互式情节无法理解手指动作

PHP 使用PHP进行简单的用户代理(移动和智能手机)检测和Redirction