如何在 iOS 的 UIWebView 中更改数字和电子邮件的颜色?

Posted

技术标签:

【中文标题】如何在 iOS 的 UIWebView 中更改数字和电子邮件的颜色?【英文标题】:How to change the color of numbers and emails in UIWebView in iOS? 【发布时间】:2013-11-17 10:21:09 【问题描述】:

我有一个包含标签的字符串。我正在将此字符串加载到 UIWebView。在此之前我是这样格式化的

    NSString* htmlContentString = [NSString stringWithFormat:
                                   @"<html>"
                                   "<style type=\"text/css\">"
                                   "body  background-color:transparent; font-family:Times Helvetica Neue,Georgia,sans-serif; font-size:14;"
                                   "</style>"
                                   "<body>"
                                   "<p>%@</p>"
                                   "</body></html>", deal.dealDescription];
    

但是,有些号码和电子邮件带有蓝色。我想去掉那个蓝色。见图片:

我想从 FORMATTING HTML 中删除它。我该怎么做?

【问题讨论】:

【参考方案1】:

UIWebView 正在检测数字并将其转换为超链接。这是讨论here。

简而言之,您可以使用位掩码指定要处理的链接类型,例如,如果您想处理 Web 链接但没有别的,您可以这样做:-

self.webView.dataDetectorTypes = UIDataDetectorTypeLink;

或检测所有链接除了一个电话号码,使用:-

self.webView.dataDetectorTypes = ~UIDataDetectorTypePhoneNumber;

请注意,如果您的 webview 是在 nib/storyboard 中创建的,那么在 Interface Builder 中也有控制此行为的复选框。

编辑:

要更改超链接的颜色,只需添加一些 CSS 样式,例如将其添加到您的 HTML 字符串中,在您的正文样式定义旁边。

"a:link color:#FFFFFF; "

【讨论】:

它仍然是蓝色的。它不起作用我只想改变颜色,但它必须是一个可点击的数字,就像现在一样。 好的,那在你原来的问题中并不清楚。在这种情况下,您只需在 HTML 中添加一些 CSS 样式。【参考方案2】:

设置 UIWebView 的 tintColor(仅限 ios 7)。

myWebView.tintColor = [UIColor yourColor];

【讨论】:

【参考方案3】:

在 head 部分使用此元标记。那个蓝色消失了。

<meta content="telephone=no" name="format-detection">

【讨论】:

以上是关于如何在 iOS 的 UIWebView 中更改数字和电子邮件的颜色?的主要内容,如果未能解决你的问题,请参考以下文章

如何在向下滑动 UIWebView 以修复 iOS7 状态栏覆盖问题后更改 UIWebView 背景颜色?

如何在 iOS 的 UIWebView 的文档目录中使用 Javascript?

如何更改 UIWebView 中的字符编码?

无法在 iOS 中更改 UIWebView 的背景

如何修复 iOS9 UIWebview 中的 window.location 问题

iOS - 防止 UIAppearance 设置更改 UIWebView 输入附件视图