html5文件未找到,iOS关于本地h5文件找不到的问题

1.很多时候,我们写的的html5打包放在APP中,使用nsbundle 去查找([[NSBundle mainBundle] pathForResource:@"name" ofType:@"type"]),返回的path总是空的

这个问题我们也不知道原因:

目前的解决方法:

1.使用zip的包,将文件在document文件下面解压缩,然后根据你设好的路径去加载h5文件。

缺陷是h5文件直接暴露出来了。

2.将h5文件放入程序时,不要选择file reference 选择group。

前者创建文件夹,后者只创建分组,

创建分组的可以找的,创建文件夹就不会找到

(Ps: 蓝色文件夹与黄色文件夹的区别

蓝色文件夹(folder)一般作为资源文件夹使用,与黄色文件夹的主要区别是不参与编译,所以说如果你在这些文件夹下编写的逻辑代码是不参与编译的,其他文件也不能直接引用它们,若引用其中文件需要全路径,即绝对路径。你可以试着在蓝色文件夹下创建.h.m文件,你会发现根本创建不了。黄色文件夹也可以对应实际的硬盘文件夹的,这一点你不能相当然哦!!!)

初步推测,是文件查找时没能深层次的去遍历查找。。。。。

网上有个方法分析:http://www.jianshu.com/p/710c84469e22

这就是xcode本身环境配置不够灵活了。

通过拖动,或者add file to 不能灵活设置这个bundle resource 的里面资源。

但是如果你拖进去的是一个文件夹,如:test/index.html

NSURL *path3 = [[NSBundle mainBundle] URLForResource:@"index" withExtension:@"html"];

这样返回的path3是空的。但是只要换个调用方法返回的就是真的。

NSURL *path2 = [[NSBundle mainBundle] URLForResource:@"test/index" withExtension:@"html"];

这样path2有值得。

打印出路径后,我们甚至可以自己去拼接这个路径。

NSString *path = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"test/index.html"];

如果涉及到html5跳转的内容可以加上#/projectDetail即可。

NSString *path = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"test/index.html#/projectDetail"];

最后,针对不同情况,如果引用第三方framework,则要在拖动添加后考虑到enbed framework的设置

如果引用第三方bundle资源,则需要在拖动或者add后考虑加copy

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值