码迷,mamicode.com
首页 > Web开发 > 详细

iPhone开发-UIWebView关闭自动检测数据

时间:2015-06-23 17:50:15      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:

假设你网页中有一段话,中间内容一部分的内容是www.yesareno.com,UIWebview会给你自动识别成http://www.yesareno.com,当然大部分情况下是好的,但是也有一些特殊情况,你不像把www.yesareno.com识别成超链接(即点击无反应,先不管这变态的需求吧),如何实现呢?

</pre><p></p><p>下面是网页的源代码:</p><p></p><pre name="code" class="html"><body>
<div id="content"><p><span style="font-family: 微软雅黑, 'Microsoft YaHei'; font-size: 28px;">如需帮助,请移步到官网 www.yesareno.cn解决。</span></p><p><br/></p></div></body>

当点击网页中的www.yesareno.com时,会调用webview的代理:

(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
// Determine if we want the system to handle it.
NSURL *url = request.URL;
}

此时打印url.schema是http,这就是webview自作聪明添加的http。那怎么破呢?

经过查看文档,发现webview有自动检测数据的属性,即 dataDetectorTypes, 其中包括 

typedef NS_OPTIONS(NSUInteger, UIDataDetectorTypes) {
    UIDataDetectorTypePhoneNumber   = 1 << 0,          // Phone number detection
    UIDataDetectorTypeLink          = 1 << 1,          // URL detection    
#if __IPHONE_4_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED
    UIDataDetectorTypeAddress       = 1 << 2,          // Street address detection
    UIDataDetectorTypeCalendarEvent = 1 << 3,          // Event detection
#endif    

    UIDataDetectorTypeNone          = 0,               // No detection at all
    UIDataDetectorTypeAll           = NSUIntegerMax    // All types
};
看到这些,想必大家已经明白了一半了吧,最简单粗暴的办法是设置 dataDetectorTypes属性为UIDataDetectorTypeNone即可了。

之后再运行程序,点击 www.yesareno.com,就不会跳转了。

小技巧而已,随笔记录下。

iPhone开发-UIWebView关闭自动检测数据

标签:

原文地址:http://blog.csdn.net/zcl369369/article/details/46607397

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!