objective-c - 在 iOS7 的 UIWebView 中点击超链接日期会显示不正确的日期,但在 iOS 6 中却不会?

标签 objective-c ios6 ios7 nsdateformatter nsdatecomponents

在我的 iOS 应用程序中,运算符(operator)在 datePicker 中输入生日,然后使用 NSDateFormatter 为“EEEE, dd MMM yyyy”的生日创建几个新日期。使用 loadHTMLString,将新日期加载到 UIWebView 中。检查 UIWebView 的“事件”属性。在 iOS 6 中,所有新日期都以超链接显示,当点击并选择“创建事件”时,日历的正确页面将打开,调试器输出中没有错误。在 iOS 7 中,新日期在 UIWebView 中显示为超链接,但是当点击时,“创建事件”选项显示的日期与 UIWebView 中显示的日期完全不同。此外,在 iOS 7 中,点击一些超链接日期时,调试器输出中会出现一个非常奇怪的错误,我无法在网络上的任何地方找到它。这是错误:

Unknown DDResult category 1 for result ; could not find any actions for URL x-apple-data-detectors://1

有没有人见过上面的错误?

以下是显示点击前后日期的应用程序屏幕截图:

screenshot1 屏幕截图 1 显示了被点击前的几个日期。超链接日期指向即将到来的( future )日期。

screenshot2 屏幕截图 2 是在点击日期 2014 年 2 月 10 日 并从弹出事件 View Controller 中选择“创建事件”选项后拍摄的。如您所见,日历中打开了错误的日期(2013 年 10 月 14 日),而不是 2014 年 2 月 10 日。

知道为什么 iOS7 的日历中显示的日期不正确,而 iOS6 却没有吗?

最佳答案

这是解决 iOS7 中 UIWebView 问题的解决方法:

1) 关闭 UIWebView 的数据检测器

     myWebView.dataDetectorTypes = 0;

2) 强制网页 View 加载虚拟页面

    [myWebView loadHTMLString:@"<html><p>clear</p></html>" baseURL:nil];

3) 此处的一些代码用于执行所有计算以创建新日期并将它们转换为 HTML 字符串 (myHTMLString),然后为 UIWebView 重新启用事件数据检测器

    myWebView.dataDetectorTypes = UIDataDetectorTypeCalendarEvent;

4) 现在用包含新日期的 html 字符串加载 UIWebView:

   [myWebView loadHTMLString:myHTMLString baseURL:nil];

上述解决方案解决了我的问题。

关于objective-c - 在 iOS7 的 UIWebView 中点击超链接日期会显示不正确的日期,但在 iOS 6 中却不会?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20590253/

相关文章:

ios - iOS 版 map 导航器

ios - 上传图片(MultipartFormData)请求objctiveC

ios - Facebook iOS SDK 3.2在没有FBWebDialogResult的情况下发布

ios6 - UIPageViewController 使用滚动过渡样式导航到错误的页面

ios - 自定义 UICollectionViewLayout 不同单元格大小

xcode构建错误框架未找到

ios - CIGaussianBlur 图像大小

objective-c - Apple Watch 应用程序中的视频流

ios - 在 ios 7 中以编程方式切换飞行模式

ios - 以编程方式检查是否在 iOS 7 上设置了密码锁