ios工程中的js文件是怎么ios加载本地html js的

本文讲的是iOS开发中UIWebView的加载本地数据的三种方式_IOS,
UIWebView是IOS内置的浏览器,可以浏览网页,打开文档 html/htm pdf docx txt等格式的文件。 safari浏览器就是通过UIWebView做的。
服务器将MIME的标识符等放入传送的数据中告诉浏览器使用那种插件
UIWebView是IOS内置的浏览器,可以浏览网页,打开 html/htm pdf docx txt等格式的文件。 safari浏览器就是通过UIWebView做的。
服务器将MIME的标识符等放入传送的数据中告诉浏览器使用那种插件读取相关文件。
uiwebview加载各种本地文件(通过loadData方法):
UIWebView加载内容的三种方式:
1 加载本地数据文件
指定文件的MIMEType
编码格式使用@“UTF-8”
2加载html字符串(可以加载全部或者部分html文件)
3加载NSURLRequest文件(前两步与NSURLConnect相同)
以上所述是小编给大家介绍的iOS开发中UIWebView的加载本地数据的三种方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对云栖社区网站的支持!
以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索uiwebview 加载本地js、uiwebview加载本地css、uiwebview加载网页、uiwebview加载https、uiwebview 本地html,以便于您获取更多的相关知识。
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...
RDS是一种稳定可靠、可弹性伸缩的在线数据库服务。支持MySQL、SQL Server、PostgreSQL、高...
云栖社区()为您免费提供相关信息,包括
uiwebview 加载本地js、uiwebview加载本地css、uiwebview加载网页、uiwebview加载https、uiwebview 本地html的信息
,所有相关内容均不代表云栖社区的意见!17:37 提问
WKWebview加载不到本地js文件
使用如下代码加载HTML文件:
NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
NSString *html = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
NSURL * BaseUrl=[NSURL fileURLWithPath:path];
[self.webView loadHTMLString:html baseURL:BaseUrl];
在index.html中这样加载js文件:
&script type="text/javascript" src="2.js"&&/script&
css文件、js文件、html文件都是同级目录,css文件就没问题,但是js文件就是加载不到,请问是什么原因呢,改成UIWebview就没问题,是我使用WKWebview加载文件的方式不对吗,望大神指导,谢谢了!!!
按赞数排序
其他相似问题& & & & & &ios开发,向项目中导入文件时,会出现两个选项,create groups for any added folder 还有一个是create folder reference for any added folders。这两个的区别在于,按前一个方式导入文件夹,其中的所有文件会全部放入bunlde目录中,不区分文件夹,并且其中的代码文件会被编译。而后一种方式导入的文件夹会保留原有的文档结构。简单点说,前一种方式导入之后,文件全部被取出来,文件夹不要,后一种方式导入的,原来是什么样,现在就是什么样,而且代码文件不会被编译。很明显的一点,就是前一种方式导入的文件夹在工程中显示的是黄色的文件夹图标,而后一种是蓝色的。& & & & 系统默认的是前一种方式,create groups。。。后一种的用途是什么呢?我们的项目中经常会用到一些html的东西,html网页在制作的过程中,多半会使用一些图片,甚至是JS代码。按照制作者的习惯,他多半要建一个文件夹来放这个页面,文件夹中一个index.html文件,然后再建一些文件夹image 放图片资源 &css放样式文件 &js放js代码文件。这种情况下。最好使用 第二种方式 create folder。。。 导入文件夹。原因如下,按第一种方式导入后文件夹后,所有文件被取出统一放到bundle目录下,这样html里面引用资源路径都要做出修改,更麻烦的是,如果使用了JS文件,按这种方式导入的js文件会被编译,导致html文件中无法使用,需要自己到项目设置里面将JS文件从编译文件移到资源文件中。 & 而如果我们按第二种方式导入的文件夹,文档目录被保留,JS被当做资源文件导入。代码中加载HTML时,只需要指定baseURL到该HTML文件所在的文件夹即可&(HTML中引用资源是按照相对路径来的,所以需要指定一个baseURL),所有东西都不需要改动,基本上浏览器里面怎么显示HTML内容,我们在应用中使用时也那样显示。
mac spring redis
最新教程周点击榜
1mac spring redis
微信扫一扫Android Webview 加载外部html时选择加载本地的js,css等资源文件
在使用WebView加载网页的时候,有一些固定的资源文件如js的jquery包,css,图片等资源会比较大,如果直接从网络加载会导致页面加载的比较慢,而且会消耗比较多的流量。所以这些文件应该放在assets里面同app打包。
要解决这个问题需要用到API 11(HONEYCOMB)提供的shouldInterceptRequest(WebView view, String url) 函数来加载本地资源。在API 21又将这个方法弃用了,是重载一个新的shouldInterceptRequest,需要的参数中将url替换成了成了request。
比如有一个图片icon.png,这个图片已经放在了assets中,现在加载了一个外部html,就需要直接把assets里面的图片拿出来加载而不需要重新从网络获取。当然可以在html里面将图片链接换成file:///android_asset/icon.png,但是这样这个html就不能在android ,ios,WAP中公用了。
实现代码:
webView.setWebViewClient(new WebViewClient() {
public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
WebResourceResponse response =
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
response = super.shouldInterceptRequest(view,url);
if (url.contains("icon.png")){
response = new WebResourceResponse("image/png","UTF-8",getAssets().open("icon.png"));
} catch (IOException e) {
e.printStackTrace();
return super.shouldInterceptRequest(view, url);
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
WebResourceResponse response =
response =
super.shouldInterceptRequest(view, request);
if (url.contains("icon.png")){
response = new WebResourceResponse("image/png","UTF-8",getAssets().open("icon.png"));
} catch (IOException e) {
e.printStackTrace();}

我要回帖

更多关于 ios webview加载js 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信