老大说,我们的项目要hybrid,要实现1、html能调用native;2、本地html调用本地html界面;3、能加载远程界面。。。。。
因为我的项目是已有的(以下简称 项目),所以是要在已有的项目里加上cordova,只是在加载远程界面这个搞了好久,伤~~~
配置cordova
人太懒,看。或者自行搜索,网上一大把。
加载远程界面
看了好几篇博客,都不行。
a、
b、
。。。。。。
不行
然后我试着用$ cordova create Demo...命令创建一个demo(以下简称 demo),然后更改
@interface MainViewController : CDVViewController@end#import "MainViewController.h"@implementation MainViewController- (id)init{ self = [super init]; if (self) { self.startPage = @"https://www.pgyer.com/ws9u"; } return self;}@end
run
卧槽,这个怎么可以。。。。。。。。。。。
然后就开着两个项目,看了这个到那个,反正是一把辛酸泪,关键是,demo里有两个www文件,我一开始比对的是最上面那个,哪都没错,哔了狗。后后来追踪代码才追到下面那个Staging目录。@#¥%……&*(
好了,吐槽完毕,上正餐。
1、更改config.xml文件
添加以下内容:
这是我的完整内容:config.xml
TEST A sample Apache Cordova application that responds to the deviceready event. Apache Cordova Team
2、更改 CDVIntentAndNavigationFilter.m 文件
修改- (void)parserDidStartDocument:(NSXMLParser *)parser方法;
- (void)parserDidStartDocument:(NSXMLParser*)parser{ // file: urlare added by default self.allowNavigations = [[NSMutableArray alloc] initWithArray:@[ @"file://" , @"http://", @"https://", @"xxxxxschemes://"]]; // no intents are added by default self.allowIntents = [[NSMutableArray alloc] init];}
如果需要响应scheme,就加上scheme,同时别忘了在info.plist里注册scheme
效果图:
附上demo:
有点乱,大家将就着看吧。