iOS簡單快速集成Cordova

若是你對於什麼是Cordova還不瞭解,能夠先移步到我另外一個文章:Cordoval在iOS中的運用整理html

裏面有詳細的介紹跟如何搭建Cordova;而本文則是要介紹JiaCordova插件,若是你有一點Cordova就能夠快速集成到項目中;前端

 

一:JiaCordova介紹git

JiaCordova是爲了讓項目對於Cordova引入更加方便快捷的一個封裝式插件,插件中已經集成的關於Cordova跟其一些經常使用的第三庫,對於Cordova的配置模板也進行整理,且封裝從服務端下載ZIP包進行解壓到沙盒文件夾中,利用Cordova進行請求的功能;最大程度上簡化關於Cordova的運用跟學習成本;github

 

二:JiaCordova運用數組

1:引用方式微信

pod 'JiaCordova'

只要簡單運用Pod指令並能夠引入,目前iOS最低版本支持爲8.0網絡

2:資源文件引入學習

目前在插件中有兩種方式進行引入資源文件(html頁面、JS腳本、CCS文件等),都是以ZIP包進行存放;url

a:第一種是存放在工程中的某個目錄中,而後APP第一次運行時就會實現對它進行解壓;實現的代碼以下:spa

    JiaCordovaFileManage *fileManager=[[JiaCordovaFileManage alloc]init];
    [fileManager loadLocalFileName:@"html.zip" unZipFolderName:@"www" successBlock:^{
        NSLog(@"成功");
    } failBlock:^(NSString *errorInfo) {
        NSLog(@"失敗");
    }];

其中html.zip就是對應的資源壓縮包,而unZipFoldName就是解壓後在沙盒目錄下的文件夾名稱,若是unZipFoldName則會默認以資源包的名稱做爲其解壓後的名稱;

b:第二種則是經過網絡請求到的資源包,插件會進行下載並對它進行解壓;實現的代碼以下:

    JiaCordovaFileManage *fileManager=[[JiaCordovaFileManage alloc]init];
    
    [fileManager loadFileWithUrl:@"http://test.qshmall.net:9090/html.zip" unZipFolderName:@"html" deleteZip:YES successBlock:^{
        
    } failBlock:^(NSString *errorInfo) {
        
    }];

其中相應的參數相似第一種,而deleteZip是爲了標識當解壓成功後是否要對ZIP包進行刪除;

3:項目頁面使用

在插件中已經封裝的一個控制器JiaCordovaViewController頁面,對於一些常規的操做跟設置進行處理;只要簡單讓項目要作爲Cordova的頁面繼承於它就能夠;以下的代碼實現:

   #import "JiaCordovaHeader.h"

   @interface TestCordovaViewController : JiaCordovaViewController

   @end

而後就能夠實現請求的方式,這邊一樣也是區分的沙盒中的頁面仍是遠端的網頁;

a:請求網頁的方式

   TestCordovaViewController *vc=[[TestCordovaViewController alloc]initConfigWithNetwork:YES folderName:@"" homePage:@"http://www.cnblogs.com/" parameter:nil];
   [self.navigationController pushViewController:vc animated:YES];

b:請求沙盒的方式

   TestCordovaViewController *vc=[[TestCordovaViewController alloc]initConfigWithNetwork:NO folderName:@"www" homePage:@"index.html" parameter:nil];
   [self.navigationController pushViewController:vc animated:YES];

其中parameter是存放參數,可讓JS進行調用,JS就能夠動態獲取到自己自個想要的參數,上面這兩種方式都有作容錯處理,假如不存在頁面時都會默認跳到項目中提供的一個錯誤提示頁面;

4:JS獲取OC的參數

對於傳參除了直接在url地址拼成之外,JiaCordova裏面還經過一個JiaCordovaParameterPlugin插件實現交互,js能夠把想獲取到的參數的key值以數組的形式傳給JiaCordovaParameterPlugin,會自動完成先前傳參時的過濾而後再把對應的值回傳給前端html頁面;

        var options=new Array("name");
        alert(options);
        cordova.exec(
                     function(result){
                     var s=result;
                     
                     alert(s);
                     
                     for(var key in result )
                     {
                       var value=  result[key];
                       alert(key+":"+value);
                     }
                     
                     },
                     function(error)
                     {
                       alert("error",error);
                     }
                     ,'JiaCordovaParameterPlugin','requestParameterData',[options]);

上面代碼就是想獲取OC中參數字典中key爲name的值;若是你有多個參數均可以增長到數組中;但前提是客戶端OC參數裏面要有對應的key;

 NSDictionary *dic=@{@"name":@"wujunyang",@"projectID":@"12345"};
        
 TestCordovaViewController *vc=[[TestCordovaViewController alloc]initConfigWithNetwork:NO folderName:@"wwws" homePage:@"index.html" parameter:dic];

由於OC的字典已經存在name的key,因此它會把這個值過濾出來,並賦值成字典回傳給JS;完成對於參數的動調獲取;

 

三:運行效果

 

 

最近有個妹子弄的一個關於擴大眼界跟內含的訂閱號,天天都會更新一些深度內容,在這裏若是你感興趣也能夠關注一下(嘿對美女跟知識感興趣),固然能夠關注後輸入:github 會有個人微信號,若是有問題你也能夠在那找到我;固然不感興趣無視此信息;

相關文章
相關標籤/搜索