IOS之UIWebView的使用(基本知识)

2020-01-14 20:05:32于丽

3、Stopping a load request when the web view is to disappear


- (void)viewWillDisappear:(BOOL)animated
{
if ( [self.myWebView loading] ) {
[self.myWebView stopLoading];
}
self.myWebView.delegate = nil; // disconnect the delegate as the webview is hidden
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}
/************/
引用自苹果官方文档(displaying web content)

10、查找webView中的scrollview:


- (void) addScrollViewListener
{
UIScrollView* currentScrollView;
for (UIView* subView in self.webView.subviews) {
if ([subView isKindOfClass:[UIScrollView class]]) {
currentScrollView = (UIScrollView*)subView;
currentScrollView.delegate = self;
}
}
}

11、去掉webView的阴影,做成类似scrollView:


- (void)clearBackgroundWithColor:(UIColor*)color
{
// 去掉webview的阴影
self.backgroundColor = color;
for (UIView* subView in [self subviews])
{
if ([subView isKindOfClass:[UIScrollView class]]) {
for (UIView* shadowView in [subView subviews])
{
if ([shadowView isKindOfClass:[UIImageView class]]) {
[shadowView setHidden:YES];
}
}
}
}
}

12、取消长按webView上的链接弹出actionSheet的问题:


-(void)webViewDidFinishLoad:(UIWebView *)webView
{
[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitTouchCallout = 'none';"];
}

13、取消webView上的超级链接加载问题:


-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
if (navigationType==UIWebViewNavigationTypeLinkClicked) {
return NO;
}
else {
return YES;
}
}

14、webView在ios5.1之前的bug:在之前的工程中使用webView加载附件,webView支持doc,excel,ppt,pdf等格式,但这些附件必须先下载到本地然后在加载到webView上才可以显示, 当附件下载到本地之后刚刚开始加载到webView上时,此时退出附件页面会导致程序崩溃。会崩溃是由于webView控件内部没有把相关代理取消掉,所以导致退出之后程序崩溃。

webView在5.1上的bug:之前项目需求要webView可以左右活动,但在往webView上加载页面时导致页面加载不全,这个bug是由于webView本身的缓存所致。(还有待研究)

15、在使用webView进行新浪微博分享时,webView会自动保存登陆的cookie导致项目中的分享模块有些问题,删除 webView的cookie的方法: