iOS-获取当前网页的 url 和 title 和 html
iOS-获取当前网页的 url 和 title 和 html
.h文件
@property (strong,nonatomic)UIWebView *webView;
@property (strong,nonatomic)NSString *currentURL;
@property (strong,nonatomic)NSString *currentTitle;
@property (strong,nonatomic)NSString *currentHTML;
.m文件
-(void) webViewDidFinishLoad:(UIWebView *)webView { [UIApplication sharedApplication].networkActivityIndicatorVisible =NO; self.title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];//获取当前页面的title self.currentURL = webView.request.URL.absoluteString; NSLog(@"title-%@--url-%@--",self.title,self.currentURL); NSString *lJs = @"document.documentElement.innerHTML";//获取当前网页的html self.currentHTML = [webView stringByEvaluatingJavaScriptFromString:lJs];
}
iOS使用正则表达式去掉html中的标签元素,获得纯文本
//content是根据网址获得的网页源码字符串
NSRegularExpression *regularExpretion=[NSRegularExpression regularExpressionWithPattern:@"<[^>]*>|\n"options:0error:nil];
//替换所有html和换行匹配元素为"-"
content=[regularExpretion stringByReplacingMatchesInString:content options:NSMatchingReportProgress range:NSMakeRange(0, content.length) withTemplate:@"-"];
//把多个"-"匹配为一个"-"
regularExpretion=[NSRegularExpression regularExpressionWithPattern:@"-{1,}" options:0 error:nil] ;content=[regularExpretion stringByReplacingMatchesInString:contentoptions:NSMatchingReportProgress range:NSMakeRange(0, content.length) withTemplate:@"-"];
//根据"-"分割到数组
NSArray *arr=[NSArray array];content=[NSString stringWithString:content];arr = [content componentsSeparatedByString:@"-"];NSMutableArray *marr=[NSMutableArray arrayWithArray:arr];[marr removeObject:@""];return marr;
iOS 获取UIWebView上面的按钮点击事件
很多文章都说iOS的UIWebView比较耗内存,在我的项目中,最开始我也是用UIWebView来加载网页的。刚开始加载的是自己拼接成的Html,后来在Html中加入一个按钮,点击之后用当前的UIWebView去加载网络上的网页。程序跑起来发现非常耗内存,加载几个网上的网页之后就爆内存警告了,不处理的话很容易被评估拒掉app。后来就改成用系统的safari浏览器来打开网络上的网页,把着耗内存的工作交给苹果自己自带的浏览器来处理,就避免了我这个app crash。但是怎么获取网页上这个按钮点击的事件呢,这个按钮本身就绑定了一个url,怎么让它点击之后当前的UIWebView不去load这个url呢。
后来查了一下资料,发现UIWebView的协议里面有这么个方法,可以获取它加载的网页上面的事件,比如单击了图片,单击了按钮等等。
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
//判断是否是单击if (navigationType == UIWebViewNavigationTypeLinkClicked){NSURL *url = [request URL];if([[UIApplication sharedApplication]canOpenURL:url]){[[UIApplication sharedApplication]openURL:url];}return NO;}return YES;
}
拼接的Html最后加的按钮的方法如下:
这样写了之后,点击按钮之后就不会用当前的UIWebView来加载网络上的网页,而是调用系统的Safari来打开。
注意:最后一点要返回YES,否则UIWebView刚开始将一片空白,这是因为第一次加载的时候也是UIWebView请求一个链接,如果返回NO,就不会去加载了。还可以对url的内容进行判断,看是什么请求。
接口,如果为webView添加了delegate对象并实现该接口,那么在webView加载任何一个frame之前都会delegate对象的该方法,该方法的返回值用以控制是否允许加载目标链接页面的内容,返回YES将直接加载内容,NO则反之。并且UIWebViewNavigationType枚举,定义了页面中用户行为的分类,包括
- UIWebViewNavigationTypeLinkClicked,用户触击了一个链接。
- UIWebViewNavigationTypeFormSubmitted,用户提交了一个表单。
- UIWebViewNavigationTypeBackForward,用户触击前进或返回按钮。
- UIWebViewNavigationTypeReload,用户触击重新加载的按钮。
- UIWebViewNavigationTypeFormResubmitted,用户重复提交表单
- UIWebViewNavigationTypeOther,发生其它行为。
iOS-获取当前网页的 url 和 title 和 html相关推荐
- iOS获取网页上数据(图片、文字、视频)
Demo地址:http://download.csdn.net/detail/u012881779/8831835 获取网页上所有图片.获取所有html.获取网页title.获取网页内容文字... . ...
- js 获取url问号前_PHP获取指定网页的HTML代码并执行输出
PHP获取指定网页的HTML代码并执行输出,这个方法主要是将所要或取目标的URL地址的网站中获取相关内容到自己的网页中. 代码如下: <?php $srcurl = "所要截取目标的U ...
- IOS 正则表达式匹配文本中URL位置并获取URL所在位置(解决连接中文问题)
IOS 正则表达式匹配文本中URL位置并获取URL所在位置(解决连接中文问题) 参考文章: (1)IOS 正则表达式匹配文本中URL位置并获取URL所在位置(解决连接中文问题) (2)https:// ...
- Trick(二)——获取一个网页的 title 信息
所谓网页的 title 信息,就是在一个浏览器打开一个网页,在浏览器的顶部显示的标题信息.那么又该如何获取这一 title 信息,进行拷贝,而不是手动输入呢? ctrl + shift + i:进入开 ...
- .net 获取当前网页的的url
正确的方法是:HttpContext.Current.Request.Url.PathAndQuery1.通过ASP.NET获取 如果测试的url地址是http://www.test.com/test ...
- Delphi自动提交网页表单和获取框架网页源码
这两个问题的实现原理其实是差不多的,所以放在一起介绍,单元MSHtml封装了我们需要的功能. 首先,新建一个DELPHI工程,在USES部分添加MSHtml单元的引用. 然后,在窗体上放置一个TWeb ...
- ASP.NET获取任意网页HTML代码
利用.NET的 WebClient类 和 WebRequest类,我们可以很容易地得到给定URL地址的源代码.主要代码如下: GetPage.aspx: 程序代码 <%@ Page Langua ...
- 服务器能识别手机型号,iOS获取当前设备型号等信息(全)包含iPhone7和iPhone7P
获取设备信息总结 1.获取设备的信息 2.获取设备的唯一标示符 3.为系统创建一个随机的标示符 4.获取当前屏幕分辨率的信息 5.获取运营商的信息 需要先导入头文件 创建对象 获取运行商的名称 获取当 ...
- 自定义带进度条的WebView , 增加获取web标题和url 回掉
1.自定义ProgressWebView package com.app.android05; import android.content.Context; import android.graph ...
最新文章
- python基础语法有哪些-Python语法基础归纳大全
- Windows phone 应用开发[2]-数据缓存
- optee3.14中MMU页表查询的所需配置--深入解读
- Linux文件系统目录结构
- asp.net操作IIS主机头的问题总结
- linux 安装git失败,Linux运维知识之linux下安装git常见故障整理
- c#问题(按F1或F2键时触发事件)
- 如何限制iframe内网页打开新窗口_网页外链用了 target=quot;_blankquot;,结果悲剧了...
- STC89C52是51单片机吗?
- Linux文件查看与查找命令
- stm32毕业设计 单片机车牌识别系统
- JS函数式编程——来源freecodecamp
- 留给19371213看的
- Oracle批量低耗清除历史数据
- java发送邮件格式_java使用main函数进行邮件发送怎样设置邮件格式
- 在WINDOWS运行框中能够输入的命令有多少?(转)
- 1+X Web前端等级考证 | 2020 12月Web前端开发中级理论 (模拟试题第三套) 附答案
- STM32芯片烧录的三种方式介绍,串口、STM32 ST-LINK Utility以及STM32CubeProgrammer
- C++用random_shuffle打乱字符串数组顺序
- Facebook创始人原型电影《社交网络》票房夺冠
热门文章
- 停车场管理系统(C语言顺序栈+链栈+链队列)
- 预制菜:“真”风口,“假”繁荣?
- 自动驾驶步入运营阶段,腾讯给出“车图云”的新解法
- 关于纸质书管理APP的测评
- mvc4文件上传由于文件太大而无法正常获取文件
- 求解未知数——yjy题库
- Git学习5:Git常用命令简明用法
- mysql官网怎么下载驱动包_如何在官网上下载mysql驱动
- 计算机窗口颜色不能自定义,用RBG颜色设置自定义颜色
- 日语二级语法汇总(part16/16)(完结篇)