【问题标题】:html5 form validation not working in iOS UIWebViewhtml5表单验证在iOS UIWebView中不起作用
【发布时间】:2016-05-19 12:57:52
【问题描述】:

我正在加载一个带有 HTML5 验证元素的页面,并使用“必需”和 max-length 等方法,它们适用于 Android WebView,但不适用于 iOS。

有没有办法支持我使用的该功能和其他 HTML5 功能?还是我总是必须编写自己的验证方法?

【问题讨论】:

  • 这里你可以看到什么版本的iOS支持什么:caniuse.com/#search=required
  • 谢谢,但 iphone 4 上的 safari 版本是 4.0.5,iphone 5 是 6.0,但是在那个页面中,他们开始支持 safari 8.4 中的“必需”属性?那是哪里?
  • 他们指的版本是iOS版本,不是Safari版本。

标签: ios html uiwebview formvalidation-plugin


【解决方案1】:

Safari 不完全支持表单验证:http://caniuse.com/#feat=form-validation

您可以编写自己的基于 JavaScript 的验证,也可以使用 existing polyfill

更新:Safari 10.1 包含完整的交互式表单验证。

【讨论】:

  • 我有一个 UIWebView 加载一个表单,其中包含设置了“必需”属性的字段(以及其他表单验证标记),但该表单无法验证。它提交(无效)表单。但是,在同一 iOS 设备上的 Safari 中,表单已正确验证。 UIWebView 根本不支持这些验证吗?有什么提示吗?
  • @DanielPietzsch 我不是 iOS/macOS 开发人员,但 Apple says:“在 iOS 8 及更高版本中运行的应用程序中,使用 WKWebView 类而不是使用 UIWebView。”它在那里工作吗?
  • @DanielPietzsch 进一步调查,WKWebView 似乎没有做任何交互元素,例如警报和提示,您需要使用WKUIDelegate 手动处理。您可以在 JavaScript 中使用 checkValidity() 来检查输入是否有效,然后您似乎需要使用 WebKit UI 的东西手动处理用户交互。
  • 谢谢!这就是我刚刚尝试过的:重构视图以改用 WKWebView。它绝对适用于 iOS 10.3。耶!对于 iOS 9 和 8,它不会。对于 iOS 10.0 - 10.2,我不知道。但这对我来说已经足够了。
【解决方案2】:

它在 WKWebView 中对我有用! 如果您使用 Cordova,请查看 https://github.com/apache/cordova-plugin-wkwebview-engine。集成起来很简单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-28
    • 2018-04-11
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 2017-07-12
    • 2016-11-11
    相关资源
    最近更新 更多