对webview 加载的文本中所有的网址变成可点击操作处理(我的方法:过滤所有的网址,然后变成html中的超链接情势如:<a href="http://www.baidu.com">www.baidu.com</a>),1开始没发现有属性可以设置,尝试了自己过滤html内容,发现自己过滤html中的内容时,标签对中的网址、和1些图片显示的网址、或输入习惯(多了空格,多了些字符等)会造成比较困难正确的把网址过滤,和在替换时候会出错。忙活了1阵子。。。。(┬_┬)白白忙活了,还是做下网址过滤正则表达式的记录吧:
1.http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?
2.((([A-Za-z]{3,9}:(?://)?)(?:[-;:&=+$,w]+@)?[A-Za-z0⑼.-]+|(?:www.|[-;:&=+$,w]+@)[A-Za-z0⑼.-]+)((?:/[+~%/.w-_]*)???(?:[-+=&;%@.w_]*)#?(?:[.!/w]*))?)
3.(((ftp|https?)://)(www.)?|www.)([da-z-_.]+)([a-z.]{2,7})([/w.-_?&]*)*/?
4.(?i)((?:https?://|wwwd{0,3}[.]|[a-z0⑼.-]+[.][a-z]{2,4}/)(?:[^s()<>]+|(([^s()<>]+|(([^s()<>]+)))*))+(?:(([^s()<>]+|(([^s()<>]+)))*)|[^s`!()[]{};:'".,<>???“”‘’]))
妈蛋啊!!原来webview有属性可以实现过滤。。。。。对,没错,就是下面的属性。~~o(>_<)o ~~ 以后看属性得认真
dataDetectorTypes属性(需要检测的数据类型),可使得webview文本中 电话,网址,地址等文本加上标识
如果上述属性已设置了,还没法使用,多是在html文本中加了屏蔽的属性
format-detection翻译成中文的意思是“格式检测”,顾名思义,它是用来检测html里的1些格式的,那关于meta的format-detection属性主要是有以下几个设置:
你明明写的1串数字没加链接样式,而iPhone会自动把你这个文字加链接样式、并且点击这个数字还会自动拨号!想去掉这个拨号链接该如何操作呢?这时候我们的meta又该大显神通了,代码以下:
telephone=no就制止了把数字转化为拨号链接!
telephone=yes就开启了把数字转化为拨号链接,要开启转化功能,这个meta就不用写了,在默许是情况下就是开启!
2、email
告知装备不辨认邮箱,点击以后不自动发送
email=no制止作为邮箱地址!
email=yes就开启了把文字默许为邮箱地址,这个meta就不用写了,在默许是情况下就是开启!
3、adress
adress=no制止跳转至地图!
adress=yes就开启了点击地址直接跳转至地图的功能,在默许是情况下就是开启!
UIWebView在发送要求之前,都会调?用这个?方法,如果返回NO,代表停?止加载 要求,返回YES,代表允许加载要求
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
可用于监听上面所说的事件
[[[request URL] scheme]]isEqualToString:@"mailto"]--判断邮件地址
[[[request URL] scheme]]isEqualToString:@"tel"]--判断电话号码
[[[request URL] scheme]]isEqualToString:@"http"]--判断网址地址
默许标识长按有系统的调用,如何屏蔽呢
方法1、
方法2、更安全的方式是,写html的时候加上以下代码,这样不管谁调用你的网页,长按链接都不会呼出弹窗框
上一篇 sqlserver 更改跟踪案例
下一篇 Java遇上MySQL