oc嵌套JS+HTML 踩的坑~ iOS篇
来源:互联网 发布:php empty 写入0 编辑:程序博客网 时间:2024/06/06 17:59
我怎么会打死他,当然是选择原谅
前言:
最近在研究整个界面用oc嵌套html+js做这么个东西,需求大概就是用webView(wkwebview)加载本地html,然后oc和js互相引用(iOS用JSC引擎做交互吧不会卡线程之类的很好用),然后我就遇到了一个坑,泪奔啊,找啊找查啊查(在这还要感谢我给力的同事们),可算是破解了,今天我要分享给大家~~~
究竟是什么坑?
在本人拖入html之后界面试了好几次本地webview加载,却总也加载不出来,这个我也是问了几个人,加载本地,大家给的都是一下答案
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *htmlPath = [path stringByAppendingString:@”ui.html”];
[_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:htmlPath]]];
这个加载本地webview想必大家非常熟练,方法上出错也是不可能的,但是很少有人会注意到这么获取本地资源会出现路径的问题!路径路径路径 !
解决办法和注意点
在ios项目下添加本地HTML+JS/css/image 当拖入项目时有两种选择:
一个是 Create groups for any added folders (创建虚拟结构-包结构)
一个是 Create folder references for any added folders (创建实体结构)
注意:
- 选第一个Create group:
当文件夹被引入后,引入的文件会被加到同一个文件夹下而忽略了原本的文件路径,而html他们给的文件夹路径必然是原来他们设定好的,如果选这个引入后人家原来关联的css啊还是img的路径就乱了,因此在HTML文件中的路径就会出现问题,图片什么的肯定show不出来了,但不会报错。
选择使用这个,代码就如下,但是搞不好人家路径识别不了。
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *htmlPath = [path stringByAppendingString:@”ui.html”];
[_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:htmlPath]]];
选第二个Create folder references:
选择这个添加完成后,编译过后引入的文件会按照原本的目录结构存放,然后添加相对路径,就完美的解决了路径问题,。
[_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"js_html/ui.html" relativeToURL:[[NSBundle mainBundle] bundleURL]]]];
css、img在html里写的时候应该是原路径相互关联设定好的。我当然是选择~~不是原谅他啊(偷笑.png),是第二个Create folder references。
其他解决方法,我们可以加到沙盒中从沙盒读取,还要什么解决办法大家可以自己想下。
最后,希望大家细心点完美的跳过此坑~~~
怎么使用oc与js交互也非常简单,之后持续更新~~
- oc嵌套JS+HTML 踩的坑~ iOS篇
- js、oc、html交互
- ios中oc的js的交互
- iOS OC与js的交互
- iOS - OC和网页JS的交互
- iOS-OC调用JS的多种形式
- ios oc与js的交互总结
- iOS-JS调用OC
- php嵌套js and html
- 引号在HTML里和JS里的嵌套
- flex iframe 嵌套HTML,as和js间的交互
- jsp中小脚本<%%>与html或者js脚本的嵌套
- JS里嵌套HTML需要过滤的正则规则
- iOS和JS交互(含OC、html、js)代码不使用第三方库(二)
- iOS - html 与 oc交互
- iOS中HTML与OC的交互实现
- [iOS js与oc原生互相调用] js调用oc的两种方式
- html 表格的嵌套
- Python :正则表达式匹配
- NotePad++快速删除行号的办法
- HTML
- 常见H5开发兼容问题
- Kettle中根据一个输入行派生出多个输出行
- oc嵌套JS+HTML 踩的坑~ iOS篇
- 学习SpringMVC——Spring MVC原理及配置详解
- RTMP直播应用与延时分析
- PLSQL初次登录oracle报错处理
- 动态数据爬取
- SSIS实践入门1:我的第一个SSIS程序开发
- SSIS实践入门2:批量包的调度和SQLServer代理作业配置
- SSIS实践入门3:把SSIS程序包从A电脑到B电脑的转移
- RS开发日期提示控件默认为昨天之进阶篇