怎么获取uiwebview 获取url当前显示的网页的url

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&当前位置:& >
> iOS中UIWebView网页加载组件的基础及使用技巧实例
iOS中UIWebView网页加载组件的基础及使用技巧实例
基本用法示例
- (void)viewDidLoad
[super viewDidLoad];
// Do any additional setup after loading the view.
UIWebView * webView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 20, ScreenWidth, ScreenHeight-20)];
// 自动队页面进行缩放以适应屏幕
webView.scalesPageToFit = YES;
webView.userInteractionEnabled = YES;
webView.opaque = YES;
[self.view addSubview:webView];
NSURL * url = [NSURL URLWithString:@""];
NSURLRequest * request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
NSString * myHT = @"优酷";
[webView loadHTMLString:myHT baseURL:url];
[webView goBack];
[webView goForward];
[webView reload];
[webView stopLoading];
webView.delegate =
//移除滚动后的外边阴影
UIScrollView *scrollView = webView.scrollV
for (int i = 0; i & scrollView.subviews. i++) {
UIView *view = [scrollView.subviews objectAtIndex:i];
if ([view isKindOfClass:[UIImageView class]]) {
view.hidden = YES ;
#pragma mark - UIWebViewDelegate
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
* typedef NS_ENUM(NSInteger, UIWebViewNavigationType) {
* UIWebViewNavigationTypeLinkClicked,
* UIWebViewNavigationTypeFormSubmitted,
* UIWebViewNavigationTypeBackForward,
* UIWebViewNavigationTypeReload,
* UIWebViewNavigationTypeFormResubmitted,
* UIWebViewNavigationTypeOther
NSLOG_FUNCTION;
return YES;
// 开始加载
- (void)webViewDidStartLoad:(UIWebView *)webView{
NSLOG_FUNCTION;
// 完成加载
- (void)webViewDidFinishLoad:(UIWebView *)webView{
NSLOG_FUNCTION;
// 加载失败,弹出错误提示
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{
UIAlertView *alterview = [[UIAlertView alloc] initWithTitle:@"" message:[error localizedDescription]
delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
[alterview show];
[alterview release];
NSLOG_FUNCTION;
以下是关于它的一些使用技巧:
1.让网页适应手机屏幕宽度
如果用UIWebView显示一些pc站的网页,会发现网页会超出屏幕,显得很不好看,这时可以在webViewDidFinishLoad这个代理里面通过js添加一个meta:
- (void)webViewDidFinishLoad:(UIWebView *)webView
NSString *meta = [NSString stringWithFormat:@"document.getElementsByName(\"viewport\")[0].content = \"width=%f, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no\"", IPHONE_WIDTH];
[webView stringByEvaluatingJavaScriptFromString:meta];
注意:使用这个方法时要把UIWebView的scalesPageToFit设成NO
webView.scalesPageToFit = NO;
2.为网页中的图片添加点击事件,当点击图片时放大查看
思路是给每一个img标签添加onclick事件,在事件中把img的src属性封装成一个特殊的url,然后进行拦截
如果是通过loadHTMLString去加载网页的话,可以执行下面一句进行替换:
代码如下:
&&& html = [html stringByReplacingOccurrencesOfString:@"&img " withString:@"&img onclick=\"window.location.href=('http://src.'+this.src);\" "];
如果是通过loadRequest,那就要再webViewDidFinishLoad中执行以下JS:
NSString *js = @"var imgs = document.getElementsByTagName(\"img\");"
"for(var i=0;i&imgs.i++){"
var img = imgs[i];"
img.onclick=function(){window.location.href=('http://src.'+this.src);}"
[webView stringByEvaluatingJavaScriptFromString:js];
然后通过webview的代理方法去拦截,拿到图片的url,之后就可以做各种处理了
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
NSString *url = request.URL.absoluteS
if ([url hasPrefix:@"http://src."])
url = [url stringByReplacingOccurrencesOfString:@"http://src." withString:@""];
// Do something..
return NO;
return YES;
3.为UIWebView添加一个跟随网页滚动的页头
UIWebView里包含一个scrollview,可以向scrollview里添加一个页头以达到跟随网页滚动的效果
CGFloat headerHeight = 36.0f;
// 注意:y坐标必须是负数,IPHONE_WIDTH是屏幕宽度
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, -headerHeight, IPHONE_WIDTH, headerHeight)];
[_webView.scrollView addSubview:_headerView];
// 修改webView的scrollView的contentInset,让顶部留出一点空间
UIEdgeInsets edgeInset = _webView.scrollView.contentI
_webView.scrollView.contentInset = UIEdgeInsetsMake(headerView.frameHeight, edgeInset.left, edgeInset.bottom, edgeInset.right);2581人阅读
objective-c移动开发(73)
在你的UIWebViewDelegate类中实现以下代码:
#pragma mark - UIWebViewDelegate
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
//用代理获取点击焦点的href
&&& NSURL *url = [request URL];
&&& if (!_isLink) { //第一次进入webView控制
&&&&&&& _isLink = YES;
&&&&&&& return&&& YES;
&&& }else{
//UIWebViewController打开
&&&&&&& CustomNavViewController *nvc = [[CustomNavViewController alloc]initWithRootViewController:[[WebViewController alloc] initWithURL:[url absoluteString] Title:@&网页链接& showMenu:YES]];
&&&&&&& [self.navigationController presentViewController:nvc animated:YES completion:nil];
&&&&&&& return NO; //防止浏览器打开
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:837754次
积分:10257
积分:10257
排名:第1022名
原创:218篇
转载:80篇
评论:131条
(2)(1)(3)(2)(1)(2)(1)(1)(4)(2)(3)(5)(3)(3)(1)(2)(4)(3)(5)(11)(3)(3)(1)(1)(8)(4)(6)(1)(7)(3)(3)(9)(13)(5)(4)(7)(3)(6)(2)(2)(6)(4)(4)(5)(8)(10)(2)(22)(2)(1)(5)(7)(9)(24)(47)@property (strong,nonatomic)UIWebView *webV@property (strong,nonatomic)NSString *currentURL;-(void) webViewDidFinishLoad:(UIWebView *)webView {& & [UIApplicationsharedApplication].ActivityIndicatorVisible =NO;& & self.title = [webViewstringByEvaluatingScriptFromString:@&document.title&];//获取当前页面的title&& && &self.currentURL = webView.request.URL.absoluteS& & NSLog(@&title-%@--url-%@--&,self.title,self.currentURL);&& &}打印: 12:33:18.542 tabbarO[1262:a0b] title-【】丰田报价_丰田报价__汽车之家--url-.cn/brand/3/?pvareaid=101124--UIWebView是iOS最常用的SDK之一,它有一个stringByEvaluatingJavaScriptFromString方法可以将javascript嵌入页面中,通过这个方法我们可以在iOS中与UIWebView中的网页元素交互。
使用stringByEvaluatingJavaScriptFromString方法,需要等UIWebView中的页面加载完成之后去调用。
1、 获取当前页面的url
- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];
2、 获取页面的title
- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSString *title = [webview stringByEvaluatingJavaScriptFromString:@"document.title"];
阅读(...) 评论()}

我要回帖

更多关于 获取当前url 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信