老大說,咱們的項目要hybrid,要實現一、html能調用native;二、本地html調用本地html界面;三、能加載遠程界面。。。。。html
由於個人項目是已有的(如下簡稱 項目),因此是要在已有的項目里加上cordova,只是在加載遠程界面這個搞了很久,傷~~~ios
人太懶,看這裏的博客吧。或者自行搜索,網上一大把。git
看了好幾篇博客,都不行。github
a、ios cordova如何加載遠程界面?apache
b、Cordoval在iOS中的運用整理app
。。。。。。url
不行spa
而後我試着用$ cordova create Demo...命令建立一個demo(如下簡稱 demo),而後更改.net
@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
runcode
臥槽,這個怎麼能夠。。。。。。。。。。。
而後就開着兩個項目,看了這個到那個,反正是一把辛酸淚,關鍵是,demo裏有兩個www文件,我一開始比對的是最上面那個,哪都沒錯,嗶了狗。後後來追蹤代碼才追到下面那個Staging目錄。@#¥%……&*(
好了,吐槽完畢,上正餐。
一、更改config.xml文件
添加如下內容:
<feature name="IntentAndNavigationFilter"> <param name="ios-package" value="CDVIntentAndNavigationFilter" /> <param name="onload" value="true" /> </feature>
這是個人完整內容:config.xml
<?xml version='1.0' encoding='utf-8'?> <widget id="xidx" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <feature name="LocalStorage"> <param name="ios-package" value="CDVLocalStorage" /> </feature> <feature name="HandleOpenUrl"> <param name="ios-package" value="CDVHandleOpenURL" /> <param name="onload" value="true" /> </feature> <feature name="IntentAndNavigationFilter"> <param name="ios-package" value="CDVIntentAndNavigationFilter" /> <param name="onload" value="true" /> </feature> <feature name="GestureHandler"> <param name="ios-package" value="CDVGestureHandler" /> <param name="onload" value="true" /> </feature> <name>TEST</name> <description> A sample Apache Cordova application that responds to the deviceready event. </description> <author email="dev@cordova.apache.org" href="http://cordova.io"> Apache Cordova Team </author> <content src="index.html" /> <access origin="*" /> <allow-intent href="http://*/*" /> <allow-intent href="https://*/*" /> <allow-intent href="tel:*" /> <allow-intent href="sms:*" /> <allow-intent href="mailto:*" /> <allow-intent href="geo:*" /> <allow-intent href="itms:*" /> <allow-intent href="itms-apps:*" /> <feature name="HTMLPlugin"> <param name="ios-package" value="HTMLPlugin" /> </feature> </widget>
二、更改 CDVIntentAndNavigationFilter.m 文件
修改- (void)parserDidStartDocument:(NSXMLParser *)parser方法;
- (void)parserDidStartDocument:(NSXMLParser*)parser { // file: url <allow-navigations> are 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:https://github.com/xuzixian/CordovaDemo
有點亂,你們將就着看吧。