分享

iOS开发学习笔记 -- (一)hybrid app

 没原创_去搜索 2015-12-01
http://blog.csdn.net/inte_sleeper/article/details/8633608


最近开始看iOS开发,看了个把星期,写几篇笔记。顺序有点乱,想到什么写什么好了。

因为上周刚刚参加了一个hybrid app开发的培训,感觉Hybrid app开发是一个比较好的方式,可以充分利用web页面布局的特性(当然,还重用了web开发的知识),避免写纯native app UI的痛苦。而目前纯HTML5的开发,虽然也有相关的应用,但是有时又损失了hybrid方式的灵活性。

当然hybrid app也有它自己的问题需要解决,如加载空白、服务器端错误处理、缓存等,不同的公司一般都会基于这些问题提供一个底层的通用包,以方便在此基础上进行开发,比如:http://windvane.m.taobao.com/windvane.htm#svninfo

下面是一个最简单的Hybrid app demo:

1. 使用Xcode,新建一个项目,在项目类型中,选“Single View Application”。名字随便起,比如叫HelloHybridApp。

2. 完成之后,我们就看到项目中有下列文件:

-AppDelegate.h

-AppDelegate.m

-MainStoryboard.storyboard

-ViewController.h

-ViewController.m

+Supporting Files

    -HelloHybridApp-info.plist

    -InfoPlist.strings

    -main.m

...


iOS中访问网页,是通过UIWebView控件实现的。因此我们需要使用interface builder,拖入一个UIWebView控件。

然后在Connections Inspector中创建控件与变量的connection。

也就是说在ViewController.h中,变成了这样:

  1. #import <UIKit/UIKit.h>  
  2.   
  3. @interface ViewController : UIViewController  
  4. @property (weak, nonatomic) IBOutlet UIWebView *webView;  
  5.   
  6. @end  

接下来,我们需要程序在打开的时候,能够加载一个网页。这有两种方式:本地离线网页和在线网页。下面分别会就这两种情况来示例。

1. 本地离线网页

我们需要添加一个离线的网页,在Supporting Files中添加一个index.html,内容如下:

  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4.     <title>Hello, Hybrid App</title>  
  5. </head>  
  6. <body>  
  7.     Hello, world!  
  8. </body>  
  9. </html>  

然后在ViewController.m的viewDidLoad方法中,添加如下代码:

  1. - (void)viewDidLoad  
  2. {  
  3.     [super viewDidLoad];  
  4.   
  5.     NSString *path = [[NSBundle mainBundle] pathForResource:@"index.html" ofType:nil];  
  6.     [self.webView loadRequest: [NSURLRequest requestWithURL:[NSURL fileURLWithPath:path]]];  
  7. }  

然后点击运行,就会看到屏幕上出现了"Hello, world!“了。


2. 在线网页

这种方式,需要在服务器端部署一个页面,这里我们就不用这么复杂了,直接打开百度就可以了。

同样修改ViewController.m的viewDidLoad方法代码:

  1. - (void)viewDidLoad  
  2. {  
  3.     [super viewDidLoad];  
  4.   
  5.     NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];  
  6.     NSURLRequest *request = [NSURLRequest requestWithURL:url];  
  7.     [self.webView loadRequest:request];  
  8. }  

这样就是一个简单的hybrid app啦(噢,为了简单,把其他的导航控件都省掉了,一种比较通用的hybrid app是:上方或下方是导航,使用native方式,内容区使用HTML5,比如网易新闻客户端:http://www./2011/07/2200.html)。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多