美文网首页对JScript一点不懂iOS开发攻城狮的集散地iOS-swift
iOS 下加载本地HTML/js/css/image 等路径问题

iOS 下加载本地HTML/js/css/image 等路径问题

作者: gavincarter | 来源:发表于2016-07-10 22:04 被阅读3645次

    今天在项目中遇到一个问题:我将H5的文件拖入项目中,在webView上添加H5,运行时发现H5的样式与图片等都没


    屏幕快照 2016-07-06 11.33.22.png

    有了。经过多种测试后发现:是路径的问题。


    在ios项目下添加本地HTML/js/css/image 当拖入项目时有两种选择:

    一个是 Create groups for any added folders (创建虚拟结构-包结构)

    一个是 Create folder references for any added folders (创建实体结构)

    • 如果选择前者,当APP编译过后引入的文件会被放在同一个文件夹下面会忽略你原本的文件夹。因此在HTML文件中的路径就会出现问题。如果你选择了前者那么HTML文件中引入CSS,js,图片等就不需要添加前缀路径了,直接写文件名就行。
      引入文件方式:
    NSString * htmlPath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
    NSString * htmlString = [NSString stringWithContentsOfFile:htmlPath encoding:NSUTF8StringEncoding error:nil];
     NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] resourcePath]];
    [self.webView loadHTMLString:htmlString baseURL:baseURL];
    
    • 如果选择后者,当APP编译过后引入的文件会按照原本的目录结构存放,这个时候就需要添加相对路径。
      引入文件方式:
    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"huaiha/index.html" relativeToURL:[[NSBundle mainBundle] bundleURL]]]];
    

    相关文章

      网友评论

      • MTDeveloper:你好,如何获取到webview加载了哪些js/css文件
        MTDeveloper:@gavincarter 谢谢
        gavincarter:你可以尝试用NSURLProtocol去拦截js css等资源文件
      • ea44b28b8ca7:找不到html路径
        ea44b28b8ca7:@ea44b28b8ca7
      • wellcoding:你好,按照Create folder references for any added folders这种方式添加,通过bundle找不到本地html,path为空,是怎么回事
        wellcoding:@gavincarter 已解决这个问题,拖进时选择floder 不能选择group,这样就可以使用h5的路径配置
        gavincarter:看不见源码,这个还真不好说,你看看自己的目录结构对不对,还有就是看看拖入文件夹的时候是否勾选了copy items if needed 选项。
      • 8bef82b761ae:试过调用在线html+调取本地CSS吗?
        gavincarter:@梦儿飘 没有,我们项目的文件都在本地,只需要请求数据就好
      • 智障小鲁班: :smiley: 哈哈,图片加载不出来 确实是路径问题,我初学html5是时候遇到过
        gavincarter:@maybo 嗯,我也踩坑了

      本文标题:iOS 下加载本地HTML/js/css/image 等路径问题

      本文链接:https://www.haomeiwen.com/subject/zabdjttx.html