iOS使用Object-C自定义cordova插件(-)

1.  创建项目

打开终端,切换到桌面,然后使用`ionic`创建一个测试项目,命名CountTest.

cd ./Desktop/

sudo ionic start CountDemo

//使用cordova ,但是后期cordova不知道怎么引导ionic中,如果你知道请留言告诉我,感谢!        sudo cordova create CountDemo com.twenty.CountDemo CountDemo

1: 项目创建到桌面的目录名,

2: iOS Bundle Identifier的名称,

3: 项目名若舍去2,3步骤,iOS Bundle ID会自行创建,3中项目名为默认1中的目录名。

我们创建的项目没有可写权限只有可读权限,因为修改CountTest权限为可读可写可执行。

由此可以修改CountTest文件及子文件。

2.  编译iOS项目工程

通过使用`ionic`编译出`iOS项目结构`的目录平台。命令如下:

//添加iOS项目的平台

sudo ionic platform add ios

或 sudo  cordova platform add ios

下图输出则添加成功

等待几分钟

//编译iOS项目

sudo ionic build ios

或  sudo cordova build ios

如上图`** BUILD SUCCEEDED **`成功以后,可以看到文件中`platform`添加一个iOS平台文件夹。

使用苹果官方开发工具`Xcode`打开,如果没有权限使用命令修改权限:

sudo chmod -R 777 .

`. 代表当前文件夹` ,

打开后结构如下

我们自定义的插件都在`Plugins`文件夹下.

3. 插件开发

创建一个`CountAdd`对象,继承`CDVPlugin`对象.

ps:`CDVPlugin`即为cordova库的连接对象。

`Command + B` 编译Xcode,程序报错`‘Cordova/Cordova.h‘ file not found`

通过查看`CordovaLib`库文件内容,此库内容中头文件`CDV.h`包涵全部的类头文件,因此修改如下:

再次编译成功.

CountAdd.h文件中,声明一个方法:计算大小.`CDVInvokedUrlCommand *`对象为调用URL命令的时候自动传递的参数。在`CountAdd.m`中实现此方法。

`CountAdd.m`中,我们添加如下代码:

1: 获取到调用的命令的唯一ID;

2:得到传过来的数组的第一个索引值;(后续详细解释)

3:给得到的数+1;

5:通过判断给插件的结果设置状态,成功状态 message 所传递的值, 失败状态 message 所传递的值;

6:通过调用代理发送插件的结果给对应的ID

4. 配置

通过使用WebStorm来打开所创建的`CountDemo`项目,在项目中的`Plugins`文件夹中我们创建一个自己的插件目录`com.twenty.CountTest`,结构如下:

ios:存放Xcode刚才所创建的CountAdd类,

www: 存放调用的和CountAdd 所调用的js文件

plugin.xml :配置iOS 和 cordova 的内容.拷贝`OC的类`到`ios文件夹`目录下,`www`目录下创建一个与`oc类名一样`的js文件

`plugin.xml`文件内容如下图:

方框内的name要一致,名字随意;

圆形内的值要与OC中继承CDVPlugin类的类名一致;

横线部分名称要与js名称一致

文/Springer(简书作者)

原文链接:http://www.jianshu.com/p/10cca2464fcf

著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

时间: 2024-10-04 02:36:36

iOS使用Object-C自定义cordova插件(-)的相关文章

Cordova-在现有iOS工程自动化接入Cordova插件

模拟Cordova插件命令 自己编写脚本,了解cordova添加插件做了哪些事情. 上一篇文章了解到,web与native的交互主要是cordova.js中的exec方法调用,触发交互事件.UIWebView已经成为过去时,忽略,这里只说wkwebview,exec调用wk的configuration.userContentController中注册的事件cordova,触发回调userContentController:didReceiveScriptMessage: 先聊web端,再聊iOS

Visual Studio的 Apache Cordova 插件CTP3.0发布!

北京时间12号晚23点开始的Connect()活动上,微软发布了一系列激动人心的消息! .NET开源了!以后.NET将可在Linux和Mac OS平台上运行! VS免费了!!如果你是学生,个人开发者,初创企业,那么你将可以使用Visual Studio Community 2013!免费! Visual Studio 2015集成了 Clang 和 LLVM,这意味着什么,意味你可以在VS里头编译iOS程序了! Visual Studio 2015还自带了Android模拟器!可以告别那个渣爆了

混合开发-利用Cordova插件实现HTML5 与 原生代码的连接

主要利用的就是通过Cordova这个东西, 进行HTML5 与 iOS断值得传递 列子:把HTML5 获取的日期同步到iOS系统的日历中去 1. 原生代码:.h.m 提供一个接口文件 主要代码: - (BOOL)saveEventToCalender:(NSString *)title content:(NSString *)contentTitle year:(NSString *)year date:(NSString *)date time:(NSString *)time { // 定义

看一下自定义的插件怎么样

    publicvoid setUp() throws Exception {protectedfinal Log log = LogFactory.getLog(this.getClass());    public User currOperator;//绝大多数的时候都有登录人信息,特此创建    public BaseUserRole userRole;//登录人角色实例    public String filePathAndName = "D:\\junit.txt";

如何给Ionic写一个cordova插件

写一个cordova插件 之前由javaWeb转html5开发,由于面临新技术,遂在适应的过程中极为挣扎,不过还好~,这个过程也极为短暂:现如今面临一些较为复杂的需求还会有一丝丝头痛,却没有一开始那么强烈了... 在正式写下文之前,我先感谢公司大boss:王总,感谢他让我进入了一个有挑战性的技术公司 并在这个过程中一直鼓励我不断汲取新技术,同时也指正了我在开发中的一些不太好的习惯,十分感谢! 再~,感谢在开发中给予我太多帮助的杜勇以及孙金~,不论是需求讨论还是具体开发阶段都会给予一些十分有用的思

ios开发环境配置及cordova安装与常用命令

一.ios开发环境配置 1.首先要有台Mac Book,如果有Mac Book,跳过步骤2.3.4,如果没有,执行步骤2.3.4: 2.下载并安装VMware Workstation,最好是下最新版本: 3.下载并安装unlock-all(VMware Workstation默认限制安装Mac虚拟机,需要安装此文件后解除限制); 4.下载Mac OS操作系统的镜像文件(需要是.ios文件)如果下载的是.dmg文件,需要用 anytoiso.exe工具转换成.ios文件,下载完成后在VMware

Hybrid App Development: 二、关于造轮子以及在Xcode iOS应用开发中加入Cordova

转载请注明出处:http://www.cnblogs.com/xdxer/p/4111552.html [ctrl+左键点击图片可以查看原图] 在上一篇关于Hybrid App Development的文章中,我讨论了一下在iOS下UIWebView的使用方法.但是光使用一个UIWebView所提供的功能还是完全不能满足我们的需求.   关于造轮子的思考: 在UIKit中的UIWebView虽然已经提供了很多功能了,比如JavaScript和Objc之间的通信.但是考虑到一个问题,如果在Hybr

【No.4 Ionic】修改 cordova 插件

在使用 cordova 过程 使用的插件 有可能不能满足个人需求,就需要修改,下面就直接说说步骤 插件结构 我用 cordova-plugin-inappbrowser 插件 讲解 在目录中有个 src目录,然后 有android  和 ios 目录,直接按需修改就行了 . |-- CONTRIBUTING.md |-- LICENSE |-- NOTICE |-- package.json |-- plugin.xml |-- README.md |-- RELEASENOTES.md |--

AngularJS Cordova插件介绍

ngCordova是在Cordova Api基础上封装的一系列开源的AngularJs服务和扩展,让开发者可以方便的在HybridApp开发中调用设备能力,即可以在AngularJs代码中访问设备能力Api. 根据我的经验,在cordova插件的sucess和error js回调方法中,是无法使用 angularjs的$scope对象和注入的方法的,只能访问全局的方法和变量,这样会导致很多麻烦,必须使用传统的js方法写很多难看的代码.使用ngCordova应该可以解决这个问题. 目前ngCord