Phonegap 提供了iOS 设备的基础特性接口来供HTML页面调用,可是这些基础接口不能满足我们的一些特殊需求,所以有时候我们须要开发插件来扩展其功能。

基于PhoneGap3.4框架的iOS插件开发。主要分下面几个步骤:

1)搭建PhoneGap3.4的iOS开发环境,搭建步骤參考此文章

2)编写.h头文件,演示样例代码例如以下:

#import <Cordova/CDVPlugin.h>

@interface CDVLogin : CDVPlugin

    - (void)login:(CDVInvokedUrlCommand*)command;

@end

3)编写.m源码文件。演示样例代码例如以下:

#import "CDVLogin.h"

@implementation CDVLogin

   - (void)login:(CDVInvokedUrlCommand*)command{

    NSString *echo = @"NIL";

     //插件返回值

    CDVPluginResult *pluginResult = nil;

    //获取传递过来的參数

    NSString *param = [command.arguments objectAtIndex:0];

   Boolean  loginStatus = [self  loginSystem:param];

    if(loginStatus){

        echo = @"YES";

 //成功时插件的返回值

        pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:echo];

    }else{

        echo = @"NO";

 //失败时插件的返回值

        pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:echo];

    }

    [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];

   

}

-(Boolean) loginSystem:(NSString *)para

{

    return YES;

}

@end

4)在config.xml 里注冊插件,例如以下:

<feature name="Login">

        <param name="ios-package" value="CDVLogin"/>

    </feature>

5)js调用,例如以下:

var CustomPlugin = {

    callNativeMethod: function (success, fail, param) {

        var exec = cordova.require("cordova/exec");

        return exec(success, fail,"Login","login",[param]);

    }

};

function callNativePlugin( param ) {

    CustomPlugin.callNativeMethod( nativePluginResultHandler, nativePluginErrorHandler, param );

}

function nativePluginResultHandler (result) {

    // alert("SUCCESS: \r\n" + result);

}

function nativePluginErrorHandler (error) {

    if(error == "NO"){

        alert("调用失败!");

    }

基于PhoneGap3.4框架的iOS插件的实现的更多相关文章

  1. CI框架使用PHPmail插件发送QQ邮件:

    有助请顶,不好请评.0:33 2016/3/12CI框架使用PHPmail插件发送QQ邮件:发送成功,不过修改了主机参数,还包含了一个phpmail中的一个另外的文件,详见下方:参见:http://c ...

  2. 基于Typecho CMS框架开发大中型应用

    基于Typecho CMS框架开发大中型应用 大中型应用暂且定义为:大于等于3个数据表的应用!汗吧! Typecho原本是一款博客系统,其框架体系有别于市面上一般意义MVC框架,主体代码以自创的Wid ...

  3. unity3D 搞定任意ios插件

    原地址:http://www.cnblogs.com/U-tansuo/archive/2012/11/22/unity_ios-plugin.html 说起unity调ios插件,好多淫比较头痛,探 ...

  4. 基于.net 职责链来实现 插件模式

    插件式的例子 QQ电脑管家,有很多工具列表,点一下工具下载后就可以开始使用了 eclipse ,X Server 等等 插件式的好处 插件降低框架的复杂性,把扩展功能从框架中剥离出来 让第三方有机会来 ...

  5. 十大免费移动程序测试框架(Android/iOS)

    十大免费移动程序测试框架(Android/iOS) 概述:本文将介绍10款免费移动程序测试框架,帮助开发人员简化测试流程,一起来看看吧. Bug是移动开发者最头痛的一大问题.不同于Web应用程序开发, ...

  6. 基于.NET MVC的高性能IOC插件化架构

    基于.NET MVC的高性能IOC插件化架构 最近闲下来,整理了下最近写的代码,先写写架构,后面再分享几个我自己写的插件 最近经过反复对比,IOC框架选择了Autofac,原因很简单,性能出众,这篇博 ...

  7. Cocoa 框架 For iOS(一) 框架的介绍,Objectivie-C运行时能力的解析等 (转载)

    http://blog.csdn.net/totogo2010/article/details/8081253 Cocoa框架是iOS应用程序的基础,了解Cocoa框架,对开发iOS应用有很大的帮助. ...

  8. 基于layui的框架模版,采用模块化设计,接口分离,组件化思想

    代码地址如下:http://www.demodashi.com/demo/13362.html 1. 准备工作 编辑器vscode,需要安装liveServer插件在前端开启静态服务器 或者使用hbu ...

  9. 基于Java Mina框架的部标jt808服务器设计和开发

    在开发部标GPS平台中,部标jt808GPS服务器是系统的核心关键,决定了部标平台的稳定性和行那个.Linux服务器是首选,为了跨平台,开发语言选择Java自不待言.需要购买jt808GPS服务器源码 ...

随机推荐

  1. Hadoop自学笔记(五)配置分布式Hadoop环境

    上一课讲了怎样在一台机器上建立Hadoop环境.我们仅仅配置了一个NHName Node, 这个Name Node里面包括了我们全部Hadoop的东西.包括Name Node, Secondary N ...

  2. TRIZ系列-创新原理-9~11-预先反作用原理、预处理原理、预先防范原理

    一.预先反作用原理表述例如以下: 1)预先给物体施加反作用,以补偿过量的或者不想要的压力. 假设知道系统在执行过程中,会有不利的或者有害的作用(负面作用)产生,则能够预先採取一定的措施来抵消.控制这样 ...

  3. C#匿名对象的使用

    单个对象 new { Inv = item.Inv, Count = item.Count } 数组 var testData = new[] { }, }, }, }, }, }, }, }, } ...

  4. [na]ip routing&no ip routing

    这玩意,考虑三层路由时候,想明白,挺重要 ip routing--------查路由表, 如果ping的目的在RT中没有,不发出任何包(arp也不会发出) 如果RT中存在,则arp 下一跳,相当于no ...

  5. 使用Apache JMeter压測Thrift

    我这里以我的一篇帖子为样例 http://blog.csdn.net/mn960mn/article/details/50476759 这里已经有服务端了,先启动服务端 首先增加maven的依赖 &l ...

  6. iOS-本地的推送

    // //  ViewController.m //  05-本地的推送 // //  Created by hongqiangli on 2017/6/12. // #import "Vi ...

  7. 自己写bootloader(一)

    bootloader功能目标:启动内核1.从Flash上把内核读入内存  1>读Flash:    a.NORFLASH:读内存    b.NANDFLASH:  2>初始化内存(SDRA ...

  8. Linux while 获取键盘输入退出

    c 语言实现如下: #include <stdio.h> #include <stdlib.h> #include <string.h> #include < ...

  9. IPC介绍——10个ipcs例子

    IPC介绍——10个ipcs例子 semaphorearrays2010performancesystemaccess ipcs是一个uinx/linux的命令.用于报告系统的消息队列.信号量.共享内 ...

  10. Tomcat性能优化之(一) 启动GZIP压缩

    Tomcat性能优化之(一) 启动GZIP压缩 1:设置TOMCAT启用GZIP压缩,通过浏览器HTTP访问对应的资源会根据配置进行压缩. <Connector port="8080& ...