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枚举,定义了页面中用户行为的分类,包括

  1. UIWebViewNavigationTypeLinkClicked,用户触击了一个链接。
  2. UIWebViewNavigationTypeFormSubmitted,用户提交了一个表单。
  3. UIWebViewNavigationTypeBackForward,用户触击前进或返回按钮。
  4. UIWebViewNavigationTypeReload,用户触击重新加载的按钮。
  5. UIWebViewNavigationTypeFormResubmitted,用户重复提交表单
  6. UIWebViewNavigationTypeOther,发生其它行为。

iOS-获取当前网页的 url 和 title 和 html相关推荐

  1. iOS获取网页上数据(图片、文字、视频)

    Demo地址:http://download.csdn.net/detail/u012881779/8831835 获取网页上所有图片.获取所有html.获取网页title.获取网页内容文字... . ...

  2. js 获取url问号前_PHP获取指定网页的HTML代码并执行输出

    PHP获取指定网页的HTML代码并执行输出,这个方法主要是将所要或取目标的URL地址的网站中获取相关内容到自己的网页中. 代码如下: <?php $srcurl = "所要截取目标的U ...

  3. IOS 正则表达式匹配文本中URL位置并获取URL所在位置(解决连接中文问题)

    IOS 正则表达式匹配文本中URL位置并获取URL所在位置(解决连接中文问题) 参考文章: (1)IOS 正则表达式匹配文本中URL位置并获取URL所在位置(解决连接中文问题) (2)https:// ...

  4. Trick(二)——获取一个网页的 title 信息

    所谓网页的 title 信息,就是在一个浏览器打开一个网页,在浏览器的顶部显示的标题信息.那么又该如何获取这一 title 信息,进行拷贝,而不是手动输入呢? ctrl + shift + i:进入开 ...

  5. .net 获取当前网页的的url

    正确的方法是:HttpContext.Current.Request.Url.PathAndQuery1.通过ASP.NET获取 如果测试的url地址是http://www.test.com/test ...

  6. Delphi自动提交网页表单和获取框架网页源码

    这两个问题的实现原理其实是差不多的,所以放在一起介绍,单元MSHtml封装了我们需要的功能. 首先,新建一个DELPHI工程,在USES部分添加MSHtml单元的引用. 然后,在窗体上放置一个TWeb ...

  7. ASP.NET获取任意网页HTML代码

    利用.NET的 WebClient类 和 WebRequest类,我们可以很容易地得到给定URL地址的源代码.主要代码如下: GetPage.aspx: 程序代码 <%@ Page Langua ...

  8. 服务器能识别手机型号,iOS获取当前设备型号等信息(全)包含iPhone7和iPhone7P

    获取设备信息总结 1.获取设备的信息 2.获取设备的唯一标示符 3.为系统创建一个随机的标示符 4.获取当前屏幕分辨率的信息 5.获取运营商的信息 需要先导入头文件 创建对象 获取运行商的名称 获取当 ...

  9. 自定义带进度条的WebView , 增加获取web标题和url 回掉

    1.自定义ProgressWebView package com.app.android05; import android.content.Context; import android.graph ...

最新文章

  1. python基础语法有哪些-Python语法基础归纳大全
  2. Windows phone 应用开发[2]-数据缓存
  3. optee3.14中MMU页表查询的所需配置--深入解读
  4. Linux文件系统目录结构
  5. asp.net操作IIS主机头的问题总结
  6. linux 安装git失败,Linux运维知识之linux下安装git常见故障整理
  7. c#问题(按F1或F2键时触发事件)
  8. 如何限制iframe内网页打开新窗口_网页外链用了 target=quot;_blankquot;,结果悲剧了...
  9. STC89C52是51单片机吗?
  10. Linux文件查看与查找命令
  11. stm32毕业设计 单片机车牌识别系统
  12. JS函数式编程——来源freecodecamp
  13. 留给19371213看的
  14. Oracle批量低耗清除历史数据
  15. java发送邮件格式_java使用main函数进行邮件发送怎样设置邮件格式
  16. 在WINDOWS运行框中能够输入的命令有多少?(转)
  17. 1+X Web前端等级考证 | 2020 12月Web前端开发中级理论 (模拟试题第三套) 附答案
  18. STM32芯片烧录的三种方式介绍,串口、STM32 ST-LINK Utility以及STM32CubeProgrammer
  19. C++用random_shuffle打乱字符串数组顺序
  20. Facebook创始人原型电影《社交网络》票房夺冠

热门文章

  1. 停车场管理系统(C语言顺序栈+链栈+链队列)
  2. 预制菜:“真”风口,“假”繁荣?
  3. 自动驾驶步入运营阶段,腾讯给出“车图云”的新解法
  4. 关于纸质书管理APP的测评
  5. mvc4文件上传由于文件太大而无法正常获取文件
  6. 求解未知数——yjy题库
  7. Git学习5:Git常用命令简明用法
  8. mysql官网怎么下载驱动包_如何在官网上下载mysql驱动
  9. 计算机窗口颜色不能自定义,用RBG颜色设置自定义颜色
  10. 日语二级语法汇总(part16/16)(完结篇)