在我的 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
有没有人见过上面的错误?
以下是显示点击前后日期的应用程序屏幕截图:
屏幕截图 1 显示了被点击前的几个日期。超链接日期指向即将到来的( future )日期。
屏幕截图 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/