注册 登录
主题 : 刚写了个UIWebView浏览多个网页的Demo(以dy.ischeer的要求)
级别: 光明使者

状态: 连续签到 - [255天]
UID: 2069
精华: 5
发帖: 1091
可可豆: 124131 CB
威望: 126125 点
在线时间: 2584(时)
注册时间: 2009-02-07
最后登录: 2019-01-19
0 楼:  发表于: 2009-09-28 17:05    发自: Web Page

刚写了个UIWebView浏览多个网页的Demo(以dy.ischeer的要求)    (在iOS代码库中浏览本帖)

刚写了个UIWebView浏览多个网页的Demo,

NavBar一个Back按钮。

ToolBar上两个按钮,一个返回上一次的页面(Pre),一个跳入浏览过的下一页面(Next)。

点击屏幕显示隐藏,




@dy.ischeer:

其实没想你的那么复杂,不需要建立那么多ViewContrller和NIB文件。只要建立一个UIViewContrller类就行了。

首先要理清思路,四个网页,并不是同时要出现,点一个出一个,而且都包含相同的功能(Pre and Next),我们只需要考虑到四个网页的URL(唯一不同的就只有URL),所以只要管URL数据这一块。

注:建立工程这一块,还有UITableView这一块,偶就不写了,这个大伙都知道,呆会我会把Demo贴上来,看Demo就知道了。


一、
首先,需要建一个数组来存放四个URL地址,为了方便管理及修改,把数据这一块,单独建一个NSObject类(如果以后要增加其它网页浏览,也只需要改数据这一块,在数组里面增加URL就行,其它都不需要动)


#import 


@interface URLData : NSObject {
    NSArray *DataArray;
}
@property (nonatomic, retain) NSArray *DataArray;
@end



//
//  URLData.m
//  UIWebViewBrowse
//
//  Created by Lixf on 09-9-28.
//  Copyright 2009 Lixf. All rights reserved.
//

#import "URLData.h"


@implementation URLData
@synthesize DataArray;

-(id)init{
    if(self = [super init])
    {
        NSArray *array =[[NSArray alloc] initWithObjects:
                         @"http://www.google.cn/",
                         @"http://www.baidu.com",
                         @"http://www.sohu.com",
                         @"http://www.sina.com.cn/", nil
                         ];
        self.DataArray = array;
        [array release];
    }
    return self;
}

- (void)dealloc {
    [DataArray release];
    [super dealloc];
}
@end


数据一这块就做好!

二、想到浏览的四个都是网页,功能也都一样,就网页内容不一样,所以定一个UIViewContrller类。


其它的看代码吧,,好忙,没时间写了``````````



图片:图片 8.png
图片:图片 2.png
图片:图片 3.png
图片:图片 5.png
图片:图片 6.png
图片:图片 7.png
图片:图片 9.png
附件: UIWebViewBrowse.zip (26 K) 下载次数:1422
汉字字典 -2018最新专业版
级别: 风云使者

UID: 191
精华: 5
发帖: 424
可可豆: 74253 CB
威望: 74253 点
在线时间: 2874(时)
注册时间: 2008-06-27
最后登录: 2015-04-16
1 楼:  发表于: 2009-09-28 18:07    发自: Web Page
如果网页里含有<a target="_blank">这样的hyperlink,貌似UIWebView打不开,怎么处理?
级别: 光明使者

状态: 连续签到 - [255天]
UID: 2069
精华: 5
发帖: 1091
可可豆: 124131 CB
威望: 126125 点
在线时间: 2584(时)
注册时间: 2009-02-07
最后登录: 2019-01-19
2 楼:  发表于: 2009-09-28 18:24    发自: Web Page
引用
引用第1楼superarts于2009-09-28 18:07发表的  :
如果网页里含有<a target="_blank">这样的hyperlink,貌似UIWebView打不开,怎么处理?



- (void)webViewDidFinishLoad:(UIWebView *)webView {
    [WebView stringByEvaluatingJavaScriptFromString:@"{\
     var a = document.getElementsByTagName(\"a\"); \
     for (var i=0; i<a.length; i++) \
     a.target = \"_self\";\
     }"];
}
汉字字典 -2018最新专业版
级别: 风云使者

UID: 191
精华: 5
发帖: 424
可可豆: 74253 CB
威望: 74253 点
在线时间: 2874(时)
注册时间: 2008-06-27
最后登录: 2015-04-16
3 楼:  发表于: 2009-09-29 13:43    发自: Web Page
cool,多谢~
级别: 新手上路
UID: 1069
精华: 0
发帖: 6
可可豆: 201 CB
威望: 201 点
在线时间: 46(时)
注册时间: 2008-10-17
最后登录: 2010-08-09
4 楼:  发表于: 2009-09-30 15:42    发自: Web Page
楼主,请教个问题:
我也在弄一个用UIWebview浏览网页的例子,跟你这个例子差不多。

发觉用UIWebView去加载网页,不断加载不同的网页的时候,内存就不断的增大.(Instruments)监控的。最后程序就出现memery low告警,然后挂掉。

我用你这个例子测试也是会不断的使得内存增加。不懂这是什么原因呢?
级别: 新手上路
UID: 1069
精华: 0
发帖: 6
可可豆: 201 CB
威望: 201 点
在线时间: 46(时)
注册时间: 2008-10-17
最后登录: 2010-08-09
5 楼:  发表于: 2009-09-30 15:44    发自: Web Page
点击几个网页后内存增加(附件)

不懂有什么方法能释放掉那些内存。
描述:内存图
图片:121.jpg
级别: 光明使者

状态: 连续签到 - [255天]
UID: 2069
精华: 5
发帖: 1091
可可豆: 124131 CB
威望: 126125 点
在线时间: 2584(时)
注册时间: 2009-02-07
最后登录: 2019-01-19
6 楼:  发表于: 2009-09-30 15:49    发自: Web Page
引用
引用第5楼bills035于2009-09-30 15:44发表的  :
点击几个网页后内存增加(附件)

不懂有什么方法能释放掉那些内存。



那天时间太紧,只写了demo,却没看内存方面。。

嗯。我试试```
汉字字典 -2018最新专业版
级别: 新手上路
UID: 1069
精华: 0
发帖: 6
可可豆: 201 CB
威望: 201 点
在线时间: 46(时)
注册时间: 2008-10-17
最后登录: 2010-08-09
7 楼:  发表于: 2009-09-30 16:15    发自: Web Page
UIwebView 加载网页会有内存泄露,但是一直找不到解决方法。

我的用法给demo里面的一样。

楼主可以urlData里面 ,多加载几个网页链接,然后点击一个网页返回,点另一个网页。加载一个网页泄露一点内存
最后程序蹦掉
级别: 光明使者

状态: 连续签到 - [255天]
UID: 2069
精华: 5
发帖: 1091
可可豆: 124131 CB
威望: 126125 点
在线时间: 2584(时)
注册时间: 2009-02-07
最后登录: 2019-01-19
8 楼:  发表于: 2009-09-30 16:27    发自: Web Page
内存泄露这个,貌似是官方sdk Bug。。

UIWebView...。。
汉字字典 -2018最新专业版
级别: 新手上路
UID: 1069
精华: 0
发帖: 6
可可豆: 201 CB
威望: 201 点
在线时间: 46(时)
注册时间: 2008-10-17
最后登录: 2010-08-09
9 楼:  发表于: 2009-09-30 16:53    发自: Web Page
恩,我也查了
用Safari也会有这样的情况,用后内存都不释放

不懂其还没有人遇到过类似的问题

CocoaChina社区转载内容已尽可能注明出处,如未能核实来源或转发内容图片有权利瑕疵的,请及时联系社区进行修改或删除【联系方式QQ : 3442093904 邮箱:support@cocoachina.com】文章内容为作者独立观点,不代表CocoaChina社区立场。版权归原作者所有,如申请授权请联系作者,因文章侵权CocoaChina社区不承担任何法律及连带责任。

描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部