iOS开发(1) WebView和HTML 显示

时间:2022-05-16 06:37:04

iOS 7 已经release了。现在学习iOS开发还是非常热门的。到处也有些团队在寻找iOS开发的人才。

那么,iOS开发.....省略了1万字....

HTML5 +CSS3+JS...再省略1万字....

这里先介绍iOS7 的WebView开发。

1. 创建一个工程,选择SingleViewApplication。

2. 拖动一个UIWebView到ViewController上。

3. 选择Assistant Editor,右侧关联选择~ViewController.h文件

4. 按住control,用鼠标左键拖动一个线到~ViewController.h里,

增加一个Outlet,起名webView

5. 切换到~ViewController.m文件

6. 在viewDidLoad中写如下代码:

 NSURLRequest * request =[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.baidu.com"]];
[self.webView loadRequest:request];

7. 运行,界面如下所示:

iOS开发(1) WebView和HTML 显示

9. command + 3才能够显示这个尺寸的界面(25%)。

上面是显示外部网页的做法,而开发的时候很有可能要显示内部的HTML文件。

那么,首先要找到该HTML文件,然后将HTML文件以URL的方式加载到WebView上,下面是显示内部页面用的代码。

     NSString *resourcePath = [[NSBundle mainBundle]bundlePath];
NSString *filePath = [resourcePath stringByAppendingPathComponent:@"home.html"];
NSString *htmlString = [[NSString alloc]initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
[self.webView loadHTMLString:htmlString baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]bundlePath]]];

页面显示效果如图所示。

iOS开发(1) WebView和HTML 显示

可以看到这里显示的并不正确,而且点击的时候也没有反应。

1. 图片没有显示的原因是在WebView中不区分路径,

所以要把在HTML浏览器中所写的带有路径的代码,改为去掉路径。

2. 页面显示不完整的原因是,屏幕分辨率尽管是 640 x 960,但是HTML的pixel在这里只能显示320 x 480(还得考虑顶部留白)

3. JavaScript不能执行的原因是jQuery不能直接执行,需要采用jQueryMobile。

4. WebView拖动的时候会自动滚动,这时候会有一个问题:它看起来并不像一个App -> 因为App顶部的NavigatorBar是不会跟动的。
   要么改为(NavigatorBar + WebView共同组成),要么考虑如何改进HTML。