iOS简单快速集成Cordova
如果你对于什么是Cordova还不了解,可以先移步到我另一个文章:Cordoval在iOS中的运用整理
里面有详细的介绍跟如何搭建Cordova;而本文则是要介绍JiaCordova插件,如果你有一点Cordova就可以快速集成到项目中;

一:JiaCordova介绍
JiaCordova是为了让项目对于Cordova引入更加方便快捷的一个封装式插件,插件中已经集成的关于Cordova跟其一些常用的第三库,对于Cordova的配置模板也进行整理,且封装从服务端下载ZIP包进行解压到沙盒文件夹中,利用Cordova进行请求的功能;最大程度上简化关于Cordova的运用跟学习成本;
二:JiaCordova运用
1:引用方式
pod 'JiaCordova'
只要简单运用Pod指令并可以引入,目前iOS最低版本支持为8.0
2:资源文件引入
目前在插件中有两种方式进行引入资源文件(html页面、JS脚本、CCS文件等),都是以ZIP包进行存放;

a:第一种是存放在工程中的某个目录中,然后APP第一次运行时就会实现对它进行解压;实现的代码如下:
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":@""};
TestCordovaViewController *vc=[[TestCordovaViewController alloc]initConfigWithNetwork:NO folderName:@"wwws" homePage:@"index.html" parameter:dic];
因为OC的字典已经存在name的key,所以它会把这个值过滤出来,并赋值成字典回传给JS;完成对于参数的动调获取;
三:运行效果

最近有个妹子弄的一个关于扩大眼界跟内含的订阅号,每天都会更新一些深度内容,在这里如果你感兴趣也可以关注一下(嘿对美女跟知识感兴趣),当然可以关注后输入:github 会有我的微信号,如果有问题你也可以在那找到我;当然不感兴趣无视此信息;

iOS简单快速集成Cordova的更多相关文章
- iOS平台 | 快速集成华为AGC认证服务
介绍 如何让用户根据已有的账号来进行登录注册呢?在应用中集成华为AGC认证服务SDK来轻松快速地实现这个功能. 本篇内容根据官网文档指导集成过程总结完成,关于集成步骤,官网的资料写的有点多,现在我总结 ...
- iOS现有工程 集成 Cordova/Ionic
首先, 新建 Cordova 项目就不说了, 步骤: http://ionicframework.com/getting-started/ , cordova生成的项目用cdv_project称呼, ...
- IOS中快速集成短信SDK验证开发(SMSSDK),IOS开发中如何设置手机验证码
[转载请注明出处] sdk是别人的,我只是下载来集成一下. smssdk下载网站:http://www.mob.com/(也有其他很多网站有类似SDK,譬如https://www.juhe.cn/等等 ...
- 快速集成iOS基于RTMP的视频推流
前言 这篇blog是iOS视频直播初窥:<喵播APP>的一个补充. 因为之前传到github上的项目中没有集成视频的推流.有很多朋友简信和微博上问我推流这部分怎么实现的. 所以, 我重新集 ...
- 使用 Jenkins 搭建 iOS/Android 持续集成打包平台【转】
背景描述 根据项目需求,现要在团队内部搭建一个统一的打包平台,实现对iOS和Android项目的打包.而且为了方便团队内部的测试包分发,希望在打包完成后能生成一个二维码,体验用户(产品.运营.测试等人 ...
- Cordova与现有框架的结合,Cordova插件使用教程,Cordova自定义插件,框架集成Cordova,将Cordova集成到现有框架中
一.框架集成cordova 将cordova集成到现有框架中 一般cordova工程是通过CMD命令来创建一个工程并添加Android.ios等平台,这样的创建方式可以完整的下载开发过程中所需要的的插 ...
- iOS-Cordova集成开发,已有项目集成cordova
iOS-Cordova集成开发,已有项目集成cordova 项目组准备开发一个APP,要求Android和iOS端页面完全一致,除了一个页面跟业务相关的不同,其他界面基本一致,因此,萌生一个想法,关于 ...
- 如何在Xamarin中快速集成Android版认证服务-手机号码篇
Xamarin作为微软提供的移动服务多系统开发平台,成为很多开发者首选的应用开发平台.AppGallery Connect(以下简称AGC)也在逐步的支持Xamarin的SDK.认证服务也是支持Xam ...
- 如何在 Xamarin 中快速集成 Android 版认证服务 - 邮箱地址篇
Xamarin 作为微软提供的移动服务多系统开发平台,成为很多开发者首选的应用开发平台.AppGallery Connect(以下简称 AGC)也在逐步的支持 Xamarin 的 SDK.认证服务也是 ...
随机推荐
- 在ElasticSearch中使用 IK 中文分词插件
我这里集成好了一个自带IK的版本,下载即用, https://github.com/xlb378917466/elasticsearch5.2.include_IK 添加了IK插件意味着你可以使用ik ...
- Java中集合框架,Collection接口、Set接口、List接口、Map接口,已经常用的它们的实现类,简单的JDK源码分析底层实现
(一)集合框架: Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(实现接口的类).所有抽象出来的数据结构和操作(算法)统称为集合框架. 程序员在具体应用的时候,不必考虑数据结构和 ...
- cocoapods安装好后repo换源
1.pod repo 然后会出现以下内容,如下是我已经换了之后的,而你的URL还是github的 master - Type: git (master) - URL: https://git.cod ...
- 关于block使用的几点注意事项
1.在使用block前需要对block指针做判空处理. 不判空直接使用,一旦指针为空直接产生崩溃. if (!self.isOnlyNet) { if (succBlock == NULL) { // ...
- NodeJs之http
创建新的服务器 创建一个简单的服务 var http = require("http"); var server = http.createServer(); server.lis ...
- 银盛支付ecshop,shopex,shopnc在线支付接口,php版本支付接口开发
最近应一个客户的要求,给他的一个ecshop商城开发银盛支付在线支付接口.银盛支付服务股份有限公司(简称银盛支付)成立于2009年7月,总注册资本14000万元人民币,员工队伍持续壮大.2011年5月 ...
- Node.js 原理简介
Node.js 的官方文档中有一段对 Node.js 的简介,如下. Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript ...
- AspNetPager 分页的详细用法(ASP.NET)
1.[添加AspNetPager.dll文件] 2.[使用方法] public static DataTable GetRecord(SystemModel.Pager mt, ref int Tot ...
- 深度学习入门实战(二)-用TensorFlow训练线性回归
欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 作者 :董超 上一篇文章我们介绍了 MxNet 的安装,但 MxNet 有个缺点,那就是文档不太全,用起来可能 ...
- 【算法】字符串匹配之Z算法
求文本与单模式串匹配,通常会使用KMP算法.后来接触到了Z算法,感觉Z算法也相当精妙.在以前的博文中也有过用Z算法来解决字符串匹配的题目. 下面介绍一下Z算法. 先一句话讲清楚Z算法能求什么东西. 输 ...