从 iOS/Android 上的网络应用程序调用本机日期选择器

2024-05-07

我正在尝试探索使用 HTML5 在不同平台上运行本机 Web 应用程序的可能性。目前,一个<input type="date">字段仅打开 Android 和 iOS 上的标准软键盘。我想未来移动操作系统的软键盘将包括日期选择器等 - 就像<select>今天调用本机选择。

由于这不是在 Android 或 iOS 上实现的,而是在本机 UI 中实现的,因此 Web 应用程序是否可以调用本机日期选择器(即单击时)?

这将使我们能够停止使用 jQuery mobile 和 YUI 等 JavaScript 库。

如果我的问题有任何不清楚的地方,请告诉我。先感谢您 :-)


多年来,一些设备支持<input type="date">但其他人则不然,所以需要小心。以下是 2012 年的一些观察结果,今天可能仍然有效:

  • 可以检测是否type="date"通过设置该属性然后读回其值来支持。不支持的浏览器/设备将忽略将类型设置为date并返回text当读回该属性时。或者,现代化 http://modernizr.com/可用于检测。请注意,仅检查某些 Android 版本是不够的;像 Android 4.0.3 上的三星 Galaxy S2 确实支持type="date",但最新 Android 4.0.4 上的 Google/Samsung Nexus S 确实如此not.

  • 为本机日期选择器预设日期时,请务必使用设备可识别的格式。如果不这样做,设备可能会默默地拒绝它,在尝试显示现有值时留下一个空的输入字段。就像在运行 Android 4.0.3 的 Galaxy S2 上使用日期选择器一样,它本身可能会设置<input> to 2012-6-16 月 1 日。然而,当从 JavaScript 设置值时,它需要前导零:2012-06-01.

  • 当使用 Cordova (PhoneGap) 之类的东西在不支持的设备上显示本机日期选择器时type="date":

    • 确保正确检测内置支持。就像 2012 年运行 Android 4.0.3 的 Galaxy S2 一样,错误地also使用 Cordova Android 插件会导致日期选择器连续显示两次:在第一次出现时单击“设置”后再次显示。

    • 当同一页面上有多个输入时,某些设备会显示“上一个”和“下一个”以进入另一个表单字段。在 iOS 4 上,这不会触发onclick处理程序,从而为用户提供常规输入。使用onfocus触发插件似乎效果更好。

    • 在 iOS 4 上,使用onclick or onfocus触发 2012 iOS 插件首先显示常规键盘,然后将日期选择器放置在其顶部。接下来,使用日期选择器后,仍然需要关闭常规键盘。使用$(this).blur()在显示日期选择器之前移除焦点对于 iOS 4 有帮助,并且不会影响我测试的其他设备。但它在 iOS 上引入了键盘的一些快速闪烁,第一次使用时事情可能会更加混乱,因为日期选择器速度较慢。人们可以通过输入来完全禁用常规键盘readonly如果有人正在使用该插件,但在同一屏幕上输入其他输入时会禁用“上一个”和“下一个”按钮。 iOS 4 插件似乎也没有使本机日期选择器显示“取消”或“清除”。

    • 2012 年,在 iOS 4 iPad(模拟器)上,Cordova 插件似乎无法正确渲染,基本上没有为用户提供任何输入或更改日期的选项。(也许 iOS 4 无法在 Web 视图上很好地呈现其本机日期选择器,或者我的 Web 视图的 CSS 样式可能有一些效果,当然这在真实设备上可能会有所不同:请评论或编辑!)

    • 不过,在 2012 年,Android 日期选择器插件再次尝试使用与 iOS 插件相同的 JavaScript API,其示例使用allowOldDates,Android版本其实不支持。此外,它返回的新日期为2012/7/2当iOS版本回归时Mon Jul 02 2012 00:00:00 GMT+0200 (CEST).

  • 即使当<input type="date">支持,事情可能看起来很混乱:

    • iOS 5 的显示效果很好2012-06-01以本地化格式,例如1 Jun. 2012 or June 1, 2012(甚至在仍在操作日期选择器的同时立即更新)。然而,运行 Android 4.0.3 的 Galaxy S2 却显示出丑陋的一面。2012-6-1 or 2012-06-01,无论使用哪个区域设置。

    • 当触摸日期输​​入或在另一个输入中使用“上一个”或“下一个”时键盘已经可见时,iPad(模拟器)上的 iOS 5 不会隐藏键盘。然后它同时在输入下方显示日期选择器and底部的键盘,以及seems允许来自两者的任何输入。然而,虽然它确实改变了可见值,但键盘输入实际上被忽略了。 (读回值或再次调用日期选择器时显示。)当键盘尚未显示时,触摸日期输​​入仅显示日期选择器,而不显示键盘。(这在真实设备上可能会有所不同,请评论或编辑!)

    • 设备可能会在输入字段中显示光标,长按可能会触发剪贴板选项,也可能显示常规键盘。单击时,某些设备甚至可能会短暂显示常规键盘,然后更改为显示日期选择器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 iOS/Android 上的网络应用程序调用本机日期选择器 的相关文章

随机推荐

  • 如何在 Azure 中调试测试发送?

    I am trying to setup a successfull push notifications between my Net backend and ios client in azure I followed this htt
  • MonoDevelop - 代码窗口颜色方案

    MonoDevelop 中有没有办法自定义代码窗口配色方案 我想要类似的东西黑曜石之子 http studiostyl es schemes son of obsidian如果可能的话 是的 转到 MonoDevelop 语法突出显示选项面
  • 继承模板的排序顺序

    使用 Sitecore 6 6 我们正在构建一些继承许多基本模板的模板 这对于重用和标准化我们的代码非常有用 因为所有字段都存储在常量文件中以便于引用 然而 我们似乎无法定义这些继承模板的显示顺序 无论如何 模板似乎都遵循它们添加的原始顺序
  • 如何在cxf-maven-plugin中定义wsdl的密码

    我想使用 cxf maven plugin 根据此文档从 WSDL 生成 Java 代码 http cxf apache org docs maven cxf codegen plugin wsdl to java html http cx
  • Dingo API 删除“数据”信封

    有没有一种简单的方法可以从 Dingo API 响应中删除 数据 信封 当我使用这个 Transformer 来转换用户模型时 class UserTransformer extends EloquentModelTransformer L
  • 尝试 SSH 时设备的 ioctl 不合适

    我正在尝试通过 SSH 连接几台服务器并尝试获取sudo l每个服务器的输出 下面是我正在执行的脚本 bin bash serverlist tmp servers while IFS read r server netgroup user
  • unity 3d 根据加速度计旋转游戏对象

    我想做一款类似 神庙逃亡 的游戏 我需要根据设备倾斜的程度来旋转播放器的平台 我正在尝试加速计 但无法使游戏对象倾斜 请指导我 谢谢 这是我的代码 我之前在注释中使用了代码 现在我尝试使用注释中的代码 public class tilt M
  • 如何将 Enzyme Shallow 与 Jest 快照结合使用

    我正在尝试使用shallow https github com airbnb enzyme blob master docs api shallow md from enzyme https github com airbnb enzyme
  • 如何在 iText 中获取新页面

    去新页面有点问题pdfContentByte 我使用下面的代码将数据放在第一页之后到下一页 但不幸的是iText不生成新页面 step1 itextDocument new com itextpdf text Document PageSi
  • 使用 Metro 风格应用程序启动桌面应用程序

    有没有办法从 Windows 8 上的 Metro 风格应用程序启动桌面应用程序 我正在尝试创建一些简单的桌面应用程序快捷方式 以替换开始屏幕上看起来不合适的桌面图标 我只需要一些超级简单的东西 最好是用 C 编写 以便在应用程序加载后立即
  • 如何比较 ASCII 值

    我想将字母的 ASCII 值存储到变量中 我该怎么做 例如 r ASCII variable 82 main character character read from a file variable r ascii in this cas
  • Python-按多列分组并获取最大值或总和

    我有兴趣获得产品价格的最大值 这是输入数据 我想按州 国家 地区分组 我如何对这两列进行分组以获得价格的最大值 import csv import locale from itertools import groupby locale se
  • paypal数字商品集成如何启用访客支付?

    您好 我正在使用贝宝集成向导进行数字商品结帐 PHP https www paypal labs com integrationwizard https www paypal labs com integrationwizard 它应该支持
  • 如何在 Lucene 5 中获取 Span Term 查询的匹配范围?

    在 Lucene 中 要获取术语周围的单词 建议使用跨度查询 有很好的演练http lucidworks com blog accessing words around a positional match in lucene http l
  • scala 使用 GMPUtil 处理 pidigits

    Rex Kerr 发布了有关在 scala 中使用 GMP 的信息 特别是运行 pidigits 程序 libjpargmp so 使用 GmpUtil c 生成 我的问题是 在哪里可以找到 GMPUtil c 我的谷歌搜索没有发现任何东西
  • CSS:为表格中选定的行设置颜色

    我需要将以下功能添加到我的表中 当用户单击一行 选择它 时 该行会用颜色标记 FFCF8B 与hover 我试过 newspaper b tbody tr selected td 但它不起作用 newspaper b border coll
  • 当所有通道都关闭时中断 select 语句

    我有两个独立生成数据的 goroutine 每个将其发送到一个通道 在我的主 goroutine 中 我想在每个输出进入时使用它们 但不关心它们进入的顺序 每个通道在耗尽其输出时都会自行关闭 虽然 select 语句是像这样独立使用输入的最
  • PHP:数组可以有一个数组作为键值对中的键吗?

    我得到这个数组的 非法偏移类型 public static CATS AND TYPES array Statement Administration array self CAT STATEMENT ADMIN gt Document A
  • 无效参数:indices[0,0] = -4 不在 [0, 40405) 中

    我有一个模型可以处理一些数据 我在数据集中添加了一些标记化的单词数据 为简洁起见有些被截断 vocab size len tokenizer word index 1 comment texts df comment text values
  • 从 iOS/Android 上的网络应用程序调用本机日期选择器

    我正在尝试探索使用 HTML5 在不同平台上运行本机 Web 应用程序的可能性 目前 一个