Html加载网页的方式

   UIWebView提供了3种加载页面的方式:

  - (void)loadRequest:(NSURLRequest *)request;

  - (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL;

  - (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL;

  这里我只讲前两种,最后一种应该不常用。

  - (void)loadRequest:(NSURLRequest *)request

  这个方法常用于加载指定url的网页,但其实它也能用来加载本地资源,而且很方便。

  NSString *filePath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"Htmls"];

  [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:filePath]]];

  这 样就把Htmls/index.html加载到webview里了。需要注意的是,Htmls这个文件夹是 以”create folder references for any added folders“方式引入的,而非默认。这样做有两个好处,一是编 译之后,资源的目录结构会和当前项目保持一致,而不会乱七八糟的散落在.app包中,也因此资源文件可以被html轻易找到;二是finder中文件目录 的改变会直接映射到项目中,无需在xcode中手动增删文件。

  index.html中,前端工程师引用了样式表

  base.css这个文件的路径是其实是xxx.app/Htmls/css/base.css,而不是xxx.app/css/base.css,它可以被找到,原因是loadReqest这种方式会把当前load的这个html文件的路径作为baseURL。

  - (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL

  这个方法用于直接加载html代码。如果html没有存在文件中,推荐使用这种方法。当然你也可以用这个方法从本地html读取代码,然后加载。但此时请注意baseURL要传对,否则html中引用的资源是找不到的。

  继续用上面的例子,要正确加载资源,你得这么写:

  NSString *baseURL = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Htmls"];

  [self.webView loadHTMLString:htmlString baseURL:[NSURL fileURLWithPath:baseURL]];

  这样,前端工程师就可以很习惯的跟你配合开发了~

时间: 2024-11-03 14:25:29

Html加载网页的方式的相关文章

IOS中使用UIWebView 加载网页、文件、 html的方法_IOS

 UIWebView 是用来加载加载网页数据的一个框.UIWebView可以用来加载pdf word doc 等等文件 生成webview 有两种方法: 1.通过storyboard 拖拽 2.通过alloc init 来初始化 创建webview,下列文本中 _webView.dataDetectorTypes = UIDataDetectorTypeAll; 是识别webview中的类型,例如 当webview中有电话号码,点击号码就能直接打电话 - (UIWebView *)webView

Android使用原生组件WebView加载网页和数据的方法_Android

在Api中关于这个类的介绍大致就是这是一个可以显示网页的视图,如: webView.loadUrl(http://www.baidu.com/); 显示结果: 还可以加载一些html的字符串,如: String str = "<html><body>You scored <b>192</b> points.</body></html>"; webView.loadData(str, "text/html&

Android使用原生组件WebView加载网页和数据的方法

在Api中关于这个类的介绍大致就是这是一个可以显示网页的视图,如: webView.loadUrl(http://www.baidu.com/); 显示结果: 还可以加载一些html的字符串,如: String str = "<html><body>You scored <b>192</b> points.</body></html>"; webView.loadData(str, "text/html&

加载图片顺序-如何让加载网页时,头部和尾部的背景图片先显示?

问题描述 如何让加载网页时,头部和尾部的背景图片先显示? 如:www.willshop.cn首次访问,也就是没有缓存的情况下, 网站的公用头部,导航和尾部,在显示的背景图片时,必须是整个页面的加载完毕才会显示出来,用户体验效果极为不好.如何处理这种情况,从而使得,加载网页时,头部和尾部的图片先显示?谢谢. 解决方案 使用iframe中间部分另外载入,不影响两个图片,但是对于seo有一定影响. 换句话说就可以用js动态加载中间内容,不过有点复杂. 解决方案二: 将你的script加载的文件全部放到

webbrowser 加载网页时变慢

问题描述 我用循环在一个webbrowser控件上不断加载网页,但随着时间越长,加载的网页越来越慢,这是怎么回事?谢谢! 解决方案 解决方案二:这是Javascript脚本造成的内存泄漏.没有办法.最好不要使用webbrowser控件.解决方案三:一些背景知识http://www.cnblogs.com/rainman/archive/2009/03/07/1405624.html解决方案四:可能对方网页存在js或flashas内存泄漏,也就是内存越用越大,cpu占有率越来越高.比如不合理的使用

java-如何在输入XXX/index.jsp加载网页前进入Action获取数据

问题描述 如何在输入XXX/index.jsp加载网页前进入Action获取数据 进入Index.jsp时 里面有需要从后台获取的数据然后显示,所以进入这个页面时不先到Action获取数据再跳转回来就会报错 请问怎么解决! 解决方案 写js,页面加载时就发ajax请求到后台,然后前端得到数据,写js给页面的元素赋值 解决方案二: 在struts里面配置好,在action加载完你想加载的数据之后,返回SUCCESS或者你指定的返回结果,这个时候通过配置文件自动会跳转到XXX/index.jsp 解

仿微信中加载网页时带线行进度条的WebView的实现

finddreams:http://blog.csdn.net/finddreams/article/details/44172639  为了仿微信中加载网页时带进度条的WebView的实现,首先我们来看一下微信中的效果是什么样的:  明确需求之后,我们来开始动手做,首先我们来自定义一个带进度条的WebView,名字为ProgressWebView: <code class="hljs java has-numbering" style="display: block;

ios-iOS 用UIWebView加载网页,网页中的js效果无效

问题描述 iOS 用UIWebView加载网页,网页中的js效果无效 iOS 用UIWebView加载网页,网页中的js效果无效,求助 解决方案 如果加载的是本地网页的话,看看网址的本地路径是否正确. 解决方案二: 网页加载效果UIWebView 加载网页UIWebView之加载本地网页 解决方案三: 你是指跳转什么的吗?ios当中json有很多问题,找找第三方sdk吧

c# mdi 通过webbrowser 加载网页子窗口,页面存在webusercontrol封装按钮,调用hide,show网页控件不能用

问题描述 c#mdi通过webbrowser加载网页子窗口,页面存在webusercontrol封装按钮,此时加载出来的网页是可以正常使用的,WINFORM程序先hide窗口,show再现实窗口,窗口中切入的WEB页面中包含的按钮,Infragistics控件都变成无法使用,不能点中,webusercontrol封装的按钮也不可用了 解决方案 解决方案二:哪位大神帮帮忙吧