UIWebView承载页面的方式
1.第一种
UIWebView* webview = [[UIWebView alloc]init];
webview.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height);
[self.view addSubview:webview];
//承载网页
NSURL* url = [NSURL URLWithString:@"http://www.jianshu.com/u/1160006c5e55"];
NSURLRequest* request = [NSURLRequest requestWithURL:url];
[webview loadRequest:request];
2.第二种(iOS9以后)
UIWebView* webview = [[UIWebView alloc]init];
webview.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height);
[self.view addSubview:webview];
NSURL* url = [NSURL URLWithString:@"http://www.jianshu.com/u/1160006c5e55"];
NSURLSession* session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
[webview loadData:data MIMEType:response.MIMEType textEncodingName:@"UTF-8" baseURL:url];
}];
[dataTask resume];
相对应属性
webView.scalespageToFit = YES;//自动对页面进行缩放以适应屏幕
webView.detectsPhoneNumbers = YES;//自动检测网页上的电话号码,单击可以拨打
注意点:
与UIWebView进行交互,调用web页面中的需要传参的函数时,参数需要带单引号,或者双引号(双引号需要进行转义在转义字符前加\),在传递json字符串时不需要加单引号或双引号
为webView添加背景图片:
webView.backgroundColor=[UIColor clearColor];
webView.opaque=NO;//这句话很重要,webView是否是不透明的,no为透明 在webView下添加个imageView展示图片就可以了
当发生内存警告的时候可以这样处理
在AppDelegate里面
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法中添加如下代码:
int cacheSizeMemory = 4*1024*1024; // 4MB
int cacheSizeDisk = 32*1024*1024; // 32MB
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:cacheSizeMemory diskCapacity:cacheSizeDisk diskPath:@"nsurlcache"];
[NSURLCache setSharedURLCache:sharedCache];
}
同时加上
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application{
[[NSURLCache sharedURLCache] removeAllCachedResponses];
}
这是通过将内存控制在一定的范围内并及时清空的方式解决,这样在一定程度上可以降低系统的内存用量,但是对应用本身占用量没有太大的变化
网友评论