iphone - UIWebView - 如何获取访问过的链接以显示为访问过?

标签 iphone cocoa-touch

我的 iPhone 应用程序中有一个 UIWebView,它可以愉快地显示 Web 内容,但它不会呈现已访问的链接与未访问的链接有任何不同。通常我希望它对访问的链接使用不同的颜色,但遗憾的是没有。

另一方面,Safari 会正确处理其链接。我假设 UIWebView 缺乏有关它访问过的 URL 的信息存储。期望委托(delegate)提供此信息是合理的,但委托(delegate)上或我能看到的其他任何地方都没有这样的 API。

那么,如何让 UIWebView 显示访问过的链接?

最佳答案

我得出的结论是,获得此功能的唯一方法就是伪造它。

我通过向所有页面添加一个 JavaScript 函数来将“访问过的”类应用于目标位于我从 Objective-C 传入的列表中的所有链接(使用 UIWebView 的 stringByEvaluatingJavaScriptFromString: 方法),从而成功地完成了这项工作。然后我只需要在 Objective-C 世界中维护该列表,并始终在 Web View 委托(delegate)的 webViewDidFinishLoad: 方法中触发该 JS 函数。最难的部分是 JavaScript。

关于iphone - UIWebView - 如何获取访问过的链接以显示为访问过?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/279384/

相关文章:

iphone - App在Apple崩溃,但尚未测试

objective-c - 在标签栏 Controller 之间共享整数值

iphone - 如何使用 iPhone 追踪 friend 的行踪?

iphone - 未调用通知

iphone - 对于某些国家/地区,iPhone 上的 CTCarrier 返回了错误的 ISO

iphone - 在 UITextField 中获取一系列选定文本,因为 NSRange 是 iOS 4

ios - 如何通过 ImagePickerViewController 获取录制视频的 Assets url?

ios - 如何设置 iOS UITextField 占位符颜色? (RubyMotion + iOS)

ios - 在 swift 中捕获无效用户输入的异常

iphone - 如何检查当前坐标是否在其他坐标的半径范围内