- 浏览: 13612454 次
- 性别:
- 来自: 洛杉矶
文章分类
- 全部博客 (1994)
- Php / Pear / Mysql / Node.js (378)
- Javascript /Jquery / Bootstrap / Web (435)
- Phone / IOS / Objective-C / Swift (137)
- Ubuntu / Mac / Github / Aptana / Nginx / Shell / Linux (335)
- Perl / Koha / Ruby / Markdown (8)
- Java / Jsp (12)
- Python 2 / Wxpython (25)
- Codeigniter / CakePHP (32)
- Div / Css / XML / HTML5 (179)
- WP / Joomla! / Magento / Shopify / Drupal / Moodle / Zimbra (275)
- Apache / VPN / Software (31)
- AS3.0/2.0 / Flex / Flash (45)
- Smarty (6)
- SEO (24)
- Google / Facebook / Pinterest / SNS (80)
- Tools (22)
最新评论
-
1455975567:
xuezhongyu01 写道wocan23 写道我想问下那个 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
xuezhongyu01:
wocan23 写道我想问下那个111.1是怎么得来的我也看不 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
18335864773:
试试 pageoffice 在线打开 PDF 文件吧. pag ...
jquery在线预览PDF文件,打开PDF文件 -
青春依旧:
opacity: 0.5; 个人喜欢这种方式!关于其他css特 ...
css透明度的设置 (兼容所有浏览器) -
July01:
推荐用StratoIO打印控件,浏览器和系统的兼容性都很好,而 ...
搞定网页打印自动分页问题
UIWebView / NSURL / NSBoundle 相关应用 (实例,加载完成前的背景, 默认safari打开链接地址等)
UIWebView可以让你创建一个网页浏览器,类似safari,而不是在程序中启动safsri哦。是不是觉得很棒呢?废话少说,切入正题。
一、创建UIWebView
CGRect bouds = [[UIScreen mainScreen]applicationFrame]; UIWebView* webView = [[UIWebView alloc]initWithFrame:bounds];
二、设置属性
webView.scalespageToFit = YES;//自动对页面进行缩放以适应屏幕 webView.detectsPhoneNumbers = YES;//自动检测网页上的电话号码,单击可以拨打 webView.autoresizesSubviews = NO; //自动调整大小 webView.autoresizingMask=(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth);
三、显示网页视图UIWebView
[self.view addSubview:webView];
四、加载内容
NSURL* url = [NSURL URLWithString:@"http://www.youku.com"];//创建URL NSURLRequest* request = [NSURLRequest requestWithURL:url];//创建NSURLRequest [webView loadRequest:request];//加载
也可以加载一个本地资源:
NSURL* url = [NSURL fileURLWithPath:filePath];//创建URL NSURLRequest* request = [NSURLRequest requestWithURL:url];//创建NSURLRequest [webView loadRequest:request];//加载
UIWebView 还支持将一个NSString对象作为源来加载。你可以为其提供一个基础URL,来指导UIWebView对象如何跟随链接和加载远程资源:
[webView loadHTMLString:myHTML baseURL:[NSURL URLWithString:@"http://baidu.com"]];
五、导航
UIWebView类内部会管理浏览器的导航动作,通过goForward和goBack方法你可以控制前进与后退动作:
[webView goBack]; [webView goForward]; [webView reload];//重载 [webView stopLoading];//取消载入内容
六、UIWebViewDelegate委托代理
UIWebView支持一组委托方法,这些方法将在特定时间得到通知。要使用这些方法,必须先设定webView的委托:
webView.delegate = self;
七、三个方法
- (void)loadRequest:(NSURLRequest *)request; - (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL; - (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL;
其中baseURL 是指基准的url 是一个绝对的地址,程序要用到的其他资源就可以根据这个基准地址进行查找而不用再次定位到绝对地址;
下面每个委托方法的第一个参数都是指向一个UIwebview的指针,因此你可以将一个委托用于多个网页视图。
-(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*) reuqest navigationType:(UIWebViewNavigationType)navigationType;//当网页视图被指示载入内容而得到通知。应当返回YES,这样会进行加载。通过导航类型参数可以得到请求发起的原因,可以是以下任意值: UIWebViewNavigationTypeLinkClicked UIWebViewNavigationTypeFormSubmitted UIWebViewNavigationTypeBackForward UIWebViewNavigationTypeReload UIWebViewNavigationTypeFormResubmitted UIWebViewNavigationTypeOther
-(void)webViewDidStartLoad:(UIWebView*)webView ;//当网页视图已经开始加载一个请求后,得到通知。
-(void)webViewDidFinishLoad:(UIWebView*)webView ;//当网页视图结束加载一个请求之后,得到通知。
-(void)webView:(UIWebView*)webView DidFailLoadWithError:(NSError*)error;//当在请求加载中发生错误时,得到通知。会提供一个NSSError对象,以标识所发生错误类型。
来源: http://blog.csdn.net/iukey/article/details/7299763
实例:
显示图片
CGRect myImage = CGRectMake(10, 10, 140, 100); //定义坐标和大小 UIImageView *myimageView = [[UIImageView alloc] initWithFrame:myImage]; //初始化UIImageView [myimageView setImage:[UIImage imageNamed:@"iphonewebsnsxiao.png"]]; //设置图片 myimageView.opaque = YES; //不透明类型 [window addSubview:myimageView]; //添加到window里 [self.window makeKeyAndVisible];
Web view
CGRect webFrame = CGRectMake(0.0f, 0.0f, 320.0f, 460.0f); //定义坐标和大小 UIWebView *webView = [[UIWebView alloc] initWithFrame:webFrame];//初始化UIWebView NSString *urlAddress = @"http://www.baidu.com"; //定义一个网址字符串 NSURL *url = [NSURL URLWithString:urlAddress]; //定义NSURL的值 NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; //创建一个返回值 [webView loadRequest:requestObj]; //链接到URL [window addSubview:webView]; //添加到window里
或者 (Empty Application )
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization after application launch. NSLog(@"loading"); UIView *contentView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; contentView.backgroundColor = [UIColor blueColor]; NSLog(@"self view"); // view orientation rotation contentView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight); //设置属性 //自动调整视图大小 contentView.autoresizesSubviews = NO; [self.window addSubview:contentView]; //创建一个层用来放webview UIWebView *aWebView = [[UIWebView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; //缩放 aWebView.scalesPageToFit = NO; //自动调整大小 aWebView.autoresizesSubviews = NO; aWebView.autoresizingMask=(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth); //[aWebView setDelegate:self]; NSURL *aURL = [NSURL URLWithString:@"http://www.youtube.com"]; NSURLRequest *aRequest = [NSURLRequest requestWithURL:aURL]; //发送请求 [aWebView loadRequest:aRequest]; //把webview添加到内容视图 [contentView addSubview:aWebView]; [self.window makeKeyAndVisible]; aWebView = nil; contentView = nil; return YES; }
UIWebView 加载网页时使用程序中的背景( 解决加载页面时一片空白问题 )
UIWebView加载网页时默认使用了网页中的背景,而不能那使用程序中的主题背景,这让人很不爽。下面给出我的解决办法。
首先我在网页的css中加上了:
body{ background-color:transparent; }
然后直接看代码:
UIWebView *wv = [[UIWebView alloc]initWithFrame:CGRectMake(0.0,0.0,320.0,460.0)]; wv.backgroundColor = [UIColor clearColor];//清除背景色 wb.opaque = NO;//背景不透明设置为NO [self.view addSubview:wv]; self.view.backgroundColor = [UIColor orangeColor];//其实这里我是为了设置为图片背景,偷懒了,不写了。
或者
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. NSURL *url = [NSURL URLWithString:@"http://www.lebunnybleu.com/seoul/storelocation"]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; self.webview.backgroundColor = [UIColor clearColor]; self.webview.opaque = NO; [self.webviewsetBackgroundColor:[UIColor redColor]]; // [self.webView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"webmap320x640.png"]]]; [self.webviewloadRequest:request]; }
UIWebView 加载本地html文件(demo.html)
CGRect bouds = CGRectMake(0, halfHight, viewBouds.size.width, halfHight); UIWebView *webview = [[UIWebView alloc] initWithFrame:bouds]; webview.scalesPageToFit = YES; webview.autoresizesSubviews = YES; webview.autoresizingMask = (UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth); [webview loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"demo" ofType:@"html"] isDirectory:NO]]]; [self.view addSubview:webview];
载入html的方法
1.
NSString *resourcePath = [[NSBundle mainBundle] resourcePath]; NSString *filePath = [resourcePath stringByAppendingPathComponent:@"webpage.html"]; NSString *htmlstring=[[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil]; [uiwebview loadHTMLString:htmlstring baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]];
或者
NSString *str = [NSString stringWithFormat:@"<html><head><style>body{margin:0;padding:0}</style></head><body><iframe marginwidth=0 marginheight=0 frameborder=0 scrolling='no' src='http://tv.ibtimes.com'></iframe></body></html>"]; [webview loadHTMLString:str baseURL:[NSURL URLWithString:@"http://www.ibtimes.com"]];
2.
NSString *webpage = [NSBundle pathForResource:@"webpage" ofType:@"html" inDirectory:[[NSBundle mainBundle] bundlePath]]; [uiwebview loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:webpage]]];
3.
[uiwebview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://qq.com"]]];
NSBundle的用法
NSBundle的对象可以获取应用程序安装目录的附件。附件包括了,当前应用程序下,所有的文件。(图片、属性列表等)
获取XML文件
NSString *filePath = [[NSBundle mainBundle] pathForResouse:@"re" ofType:@"xml"]; NSData *data = [[NSData alloc] initWithContentsOfFile:filePath];
获取TXT文件
NSString *filePath = [[NSBundle mainBundle] pathForResouse:@"myFile" ofType:@"txt"]; NSData *data = [NSData dataWithContentsOfFile:filePath];
获取属性列表
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"ViewControllers" ofType:@"plist"]];
默认safari打开链接地址
.h
#import <UIKit/UIKit.h> @interface adFullScreen : UIViewController <UIWebViewDelegate> { IBOutlet UIWebView *webview; } @end
.m
- (void) viewDidLoad { NSString *adHTML = @"<html><head><style>body{margin:0;padding:0}</style></head><body><iframe width=1024 height=768 marginwidth=0 marginheight=0 frameborder=0 scrolling='no' src='http://oascentral.ibtimes.com/RealMedia/ads/adstream_sx.ads/ipad.ibtimes/home@Position2'></iframe></body></html>"; [webview loadHTMLString:adHTML baseURL:[NSURL URLWithString:@"http://justcoding.iteye.com"]]; webview.delegate = self; adHTML = nil; } -(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType { if ( inType == UIWebViewNavigationTypeLinkClicked ) { [[UIApplication sharedApplication] openURL:[inRequest URL]]; return NO; } return YES; }
如果不想设置点击,而是打开后直接跳转一个网址,只要用以下代码来代替
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { if ([[[request URL] absoluteString] isEqual:@"http://justcoding.iteye.com"]) return YES; [[UIApplication sharedApplication] openURL:[request URL]]; return NO; }
他的其他方法和属性是:
typedef enum { UIWebViewNavigationTypeLinkClicked, UIWebViewNavigationTypeFormSubmitted, UIWebViewNavigationTypeBackForward, UIWebViewNavigationTypeReload, UIWebViewNavigationTypeFormResubmitted, UIWebViewNavigationTypeOther } UIWebViewNavigationType;
@protocol UIWebViewDelegate <NSObject> @optional - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType; - (void)webViewDidStartLoad:(UIWebView *)webView; - (void)webViewDidFinishLoad:(UIWebView *)webView; - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error; @end
发表评论
-
手机firebug查看网页代码 How to View Website Source Codes on iPad / iPhone
2016-04-26 02:41 1116You’re using your iPad to br ... -
Android模拟器genymotion的安装和使用
2016-03-18 01:16 2464Genymotion概述 Genymotion是一套完整的 ... -
编码之道:取个好名字很重要
2015-10-14 05:19 1111代码就是程序员的孩子,给“孩子”取个好听的名字很重 ... -
Genymotion - 强大好用高性能的 Android 模拟器 (在电脑流畅运行APK安卓软件游戏的利器)
2015-06-05 13:34 7312随着 Android 系统的应用和游戏越来越丰富,甚至有 ... -
收集几个移动平台浏览器的User-Agent
2014-07-23 02:33 2962List of all Mobile Browsers ... -
常用浏览器修改User-Agent的方法
2014-06-28 02:58 10889之前有介绍收集的几个移动平台浏览器的User-Agent,以 ... -
更简洁的方式修改Chrome的User Agent,轻松体验移动版网络
2014-06-28 02:53 6858国庆节在家宅着,使用3g上网卡上网,和在公司上网不一样的是 ... -
3个检测浏览器User-Agent信息的网站
2014-06-28 02:52 2484刚刚在收集各个移动平台浏览器的User-Agent(参见这 ... -
根据移动设备屏幕像素密度,给予不同分辨率的图片
2014-06-26 00:52 2899在出现iphone4之前的相当长的时间内,网站开发人员 ... -
视网膜New iPad与普通分辨率iPad页面的兼容处理
2014-06-26 00:44 1262一、这是篇经验分享 ... -
iOS8开发-Swift编程
2014-06-25 00:45 1817课时列表 章节1:第一个Swift应用 ... -
Swift中文教程(二十三) 高级运算符
2014-06-25 00:43 774除了基本操作符中所讲的运算符,Swift还有许多复杂的高级 ... -
Swift中文教程(二十二) 泛型
2014-06-25 00:35 995泛型代码可以让你写出根据自我需求定义、适用于任何类型的,灵 ... -
Swift中文教程(二十一) 协议
2014-06-24 05:25 961Protocol(协议)用于统一方法和属性的名称,而不实现任 ... -
Swift中文教程(二十) 扩展
2014-06-24 00:47 678扩展就是向一个已有的类、结构体或枚举类型添加新功能(fun ... -
Swift中文教程(十九) 类型嵌套
2014-06-24 00:44 876枚举类型常被用于实现特定类或结构体的功能。也能够在有多种变量 ... -
Swift中文教程(十八) 类型检查
2014-06-24 00:41 716类型检查是一种检查类实例的方式,并且或者也是让实例作为它的 ... -
Swift中文教程(十七) 可选链
2014-06-17 05:11 857可选链(Optional Chaining)是一种可以请求 ... -
Swift中文教程(十六) 自动引用计数
2014-06-17 05:05 1234Swift使用自动引用计数(ARC)来管理应用程序的内存使 ... -
Swift中文教程(十五) 析构
2014-06-17 04:57 988在一个类的实例被释放之前,析构函数会被调用。用关键字dei ...
相关推荐
caravel, uiwebview/WKWebView和JS的快速事件总线 在 uiwebview/WKWebView和嵌入式JS之间发送消息总线的开销为 。 用纯Swift制作。特性简单。快速。可靠的事件总线系统多总线支持多线程支持支持 WKWebViewiOS ~> ...
该Demo是UIScrollView和UIWebView结合EGO实现下拉刷新的demo
因此,实现用户触击UIWebView页面中的链接,并跳至Safari中打开链接页面的步骤如下: 定义实现UIWebViewDelegate协议的类MyWebViewDelegate(通常是由包含UIWebView的controller中实现UIWebViewDelegate协议)。 ...
在UIWebView中加载本地图片,http://blog.csdn.net/zhangao0086/article/details/7262192
将UIWebVIew和WKWebView封装到一起,当系统版本大于8.0时候选择WKWebView降低性能消耗,当小于8.0时候使用UIWebView进行加载 1、将项目中的根目录中的“ZLCWebView源文件”中的ZLCWebView.h及m拖入工程(或直接在...
一款UIWebView的加载进度条,基于CAShapeLayer,有两种显示风格:纯颜色显示和渐变色显示
NULL 博文链接:https://wenxin2009.iteye.com/blog/1708733
这是iPhone开发之UIWebView示例程序,具体参考: http://blog.csdn.net/htttw/article/details/7888557
UIWebView+html+css,实现UIWebView中可点击链接,并且可显示gif动画效果
UIWebView是IOS内置的浏览器,可以浏览网页,打开文档 html/htm pdf docx txt等格式的文件。 safari浏览器就是通过UIWebView做的。 服务器将MIME的标识符等放入传送的数据中告诉浏览器使用那种插件读取相关文件。 ...
UIWebVeiw的使用,功能包括“返回上页”“在safari打开”“网页刷新”
两步实现iOS UIWebView 通过 cookie 完成自动登录。
UIWebView的loadRequest可以用来加载一个url地址,它需要一个NSURLRequest参数。我们定义一个方法用来加载url。在UIWebViewDemoViewController中定义下面方法: - (void)loadWebPageWithStrin
IOS--UIWebView加载进度条(NJKWebViewProgress)
网页视图的基本使用,网络资源地址字符串的处理,UIWebView属性与协议的综合使用;
UIWebView原生与H5交互,pre;confirm;等包含三个H5页面跳转的交互demo
UIWebView和js交互 里边自己写了个H5方便大家理解
IOS开发中因为引入cocos2dx,导致代码审核不通过无法提交( Apple will stop accepting submissions of apps that use UIWebView APIs )。该问题的解决方案有两种:1)升级Cocos2dx的版本,在查看Cocoas官网及Cocoas...
1、相关介绍 iOS在UIWebView中获取的cookie的方法:NSHTTPCookieStorage * nCookies = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 再具体获取某个域的cookie:NSArray* cookiesURL = [nCookies cookiesForURL:...
UIWebView是开发中很常用的应用内调用网页浏览的控件,这里整理了一些iOS中UIWebView网页加载组件的基础及使用技巧实例 ,需要的朋友可以参考下