iOS UIWebView
2015-12-31 12:22
337 查看
关于UIWebView的一些事: http://www.cocoachina.com/applenews/devnews/2012/1123/5167.html
1:禁止UIWebView有拖动惯性
[csharp] view
plaincopy
[(UIScrollView *)[[self.webView subviews] objectAtIndex:0] setBounces:NO];
以下适用于iOS5.0以上
[csharp] view
plaincopy
[detailPaperWebView.scrollView setBounces:NO];
2:设置UIWebView是按 WebView自适应大小显示,还是按正文内容的大小来显示
[csharp] view
plaincopy
[webView setScalesPageToFit:YES];
YES:表示WebView自适应大小
NO:表示按正文内容的大小来显示
3:UIWebView加载HTML字符串
[csharp] view
plaincopy
[webView loadHTMLString: strHTMLContent baseURL:[NSURL URLWithString:strServerUrl]];
baseURL:桥接HTML字符串里面的图片路径.以保证图标等能够正常显示 例如:http://221.4.222.110:8078
使用此访问时需要注意:是否有访问不到的图片链接.如果有的话,UIWebView 会等请求超时时才执行委托 webViewDidFinishLoad
4:UIWebView 根据内容自动适应内容高度
在委托(webViewDidFinishLoad)中 植入以下代码:
[csharp] view
plaincopy
CGSize actualSize = [webView sizeThatFits:CGSizeZero];
CGRect newFrame = webView.frame;
newFrame.size.height = actualSize.height;
webView.frame = newFrame;
5:UIWebView加载网页时
[csharp] view
plaincopy
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:1];
NSURLRequestReloadIgnoringCacheData 忽略缓存直接从原始地址下载
NSURLRequestReturnCacheDataElseLoad 只有在cache中不存在data时才从原始地址下载
6:UIWebView 背景透明 3步曲
[csharp] view
plaincopy
[self.webViewHTMLEditor setBackgroundColor:[UIColor clearColor]];
[self.webViewHTMLEditor setOpaque:NO];
HTML页面 body : <body style="background-color: transparent">
7:控制UIWebView的请求委托,返回YES, WebView 会顺利去执行Url,返回NO 将可以阻止
[csharp] view
plaincopy
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
{
// NSURL *requestURL =[ [ request URL ] retain ];
// if ( ( [ [ requestURL scheme ] isEqualToString: @"http" ] || [ [ requestURL scheme ] isEqualToString: @"https" ] || [ [ requestURL scheme ] isEqualToString: @"mailto" ])
// && ( navigationType == UIWebViewNavigationTypeLinkClicked ) ) {
// return ![ [ UIApplication sharedApplication ] openURL: [ requestURL autorelease ] ];
// }
// [ requestURL release ];
if (isFirstWebViewRequest) {
isFirstWebViewRequest = NO;
return YES;
}else
return NO;
}
1:禁止UIWebView有拖动惯性
[csharp] view
plaincopy
[(UIScrollView *)[[self.webView subviews] objectAtIndex:0] setBounces:NO];
以下适用于iOS5.0以上
[csharp] view
plaincopy
[detailPaperWebView.scrollView setBounces:NO];
2:设置UIWebView是按 WebView自适应大小显示,还是按正文内容的大小来显示
[csharp] view
plaincopy
[webView setScalesPageToFit:YES];
YES:表示WebView自适应大小
NO:表示按正文内容的大小来显示
3:UIWebView加载HTML字符串
[csharp] view
plaincopy
[webView loadHTMLString: strHTMLContent baseURL:[NSURL URLWithString:strServerUrl]];
baseURL:桥接HTML字符串里面的图片路径.以保证图标等能够正常显示 例如:http://221.4.222.110:8078
使用此访问时需要注意:是否有访问不到的图片链接.如果有的话,UIWebView 会等请求超时时才执行委托 webViewDidFinishLoad
4:UIWebView 根据内容自动适应内容高度
在委托(webViewDidFinishLoad)中 植入以下代码:
[csharp] view
plaincopy
CGSize actualSize = [webView sizeThatFits:CGSizeZero];
CGRect newFrame = webView.frame;
newFrame.size.height = actualSize.height;
webView.frame = newFrame;
5:UIWebView加载网页时
[csharp] view
plaincopy
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:1];
NSURLRequestReloadIgnoringCacheData 忽略缓存直接从原始地址下载
NSURLRequestReturnCacheDataElseLoad 只有在cache中不存在data时才从原始地址下载
6:UIWebView 背景透明 3步曲
[csharp] view
plaincopy
[self.webViewHTMLEditor setBackgroundColor:[UIColor clearColor]];
[self.webViewHTMLEditor setOpaque:NO];
HTML页面 body : <body style="background-color: transparent">
7:控制UIWebView的请求委托,返回YES, WebView 会顺利去执行Url,返回NO 将可以阻止
[csharp] view
plaincopy
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
{
// NSURL *requestURL =[ [ request URL ] retain ];
// if ( ( [ [ requestURL scheme ] isEqualToString: @"http" ] || [ [ requestURL scheme ] isEqualToString: @"https" ] || [ [ requestURL scheme ] isEqualToString: @"mailto" ])
// && ( navigationType == UIWebViewNavigationTypeLinkClicked ) ) {
// return ![ [ UIApplication sharedApplication ] openURL: [ requestURL autorelease ] ];
// }
// [ requestURL release ];
if (isFirstWebViewRequest) {
isFirstWebViewRequest = NO;
return YES;
}else
return NO;
}
相关文章推荐
- android gradle 多渠道打包分发
- 21.Android之SQLite数据库学习
- Description Resource Path Location Type AppliToolingPart cannot be resolved to a type AppliToolingPa
- Android中数据存储----偏好设置
- Android 项目开发框架
- iOS使用命令行进行企业版打包发布
- 2015-菜鸟Android历程
- 关于android中sharedpreferences数据不更新的问题
- Android Studio 快捷键
- failed to apply plugin [id 'com.android.application']
- View too large to fit into drawing cache when calling getDrawingCache()
- android 之 Camera
- Android 进阶 教你打造 Android 中的 IOC 框架 【ViewInject】 (下)
- android中cardview的基本使用
- php实现微信公众号主动推送消息
- Android---绘图
- Android二维码扫描、生成
- Android二维码扫描、生成
- Android 进阶 教你打造 Android 中的 IOC 框架 【ViewInject】 (上)
- iOS关键字strong/weak/assign/retain/nonatomic/atomic