Cordova+ ios 插件开发

//ios 插件开发
//Echo iOS Plugin Example
//配置  在config.xml中
<platform name="ios">
    <config-file target="config.xml" parent="/*">
        <feature name="Echo">
            <param name="ios-package" value="CDVEcho" />
        </feature>
    </config-file>
</platform>

//Echo 头文件
#import <Cordova/CDC.h>
@interface CDVEcho:CDVPlugin
//实例方法
-(void) echo:(CDVInvokedUrlCommand *) command;
@end

//实现部分
#import "CDVEcho.h"
#import <Cordova/CDC.h>

@implementation CDVEcho

-(void) echo:(CDVInvokedUrlCommand *) command
{
    CDVPluginResult* pluginResult = nil;
    NSString* echo = [command.arguments objectAtIndex:0];

    if (echo != nil && [echo length] > 0)
    {
        pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:echo];
    }
    else
    {
        pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR];
    }
    [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
}
@end

//线程处理
 - (void)myPluginMethod:(CDVInvokedUrlCommand*)command
{
    // Check command.arguments here.
    [self.commandDelegate runInBackground:^{
        NSString* payload = nil;
        // Some blocking logic...
        CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:payload];
        // The sendPluginResult method is thread-safe.
        [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
    }];
}
//^{}:用来等待queue里的最后一个block被执行掉,常用操作之一
//^这个东西,说明一个块函数,()这个东西是块里面需要的参数{}执行体
//需要注意的是 weakSelf , 不是直接使用self, 防止循环引用
[self.commandDelegate runInBackground:^{}];

JavaScript:
1.successFunction:一个成功的回调函数
2.failFunction:一个错误回调函数
3.service: 一个本地类名
4.action:本地类方法名
5.args:数组的参数传递到本地环境
  exec(<successFunction>, <failFunction>, <service>, <action>, [<args>]);

Sample:
//定义
cordova.define("com.JajaCy.cordova.echo", function(require, exports, module) {
    var exec = require(‘cordova/exec‘);
    var platform = require(‘cordova/platform‘);
    /**
     * Provides access to Echo on the device.
     * 在设备上提供通知。
    */
    module.exports = {
        /**
         * Demo
         * @param {String} message
         * @param {Function} completeCallback
         */
        echo: function(message,callback) {
            exec(callback, function(err){
                callback(‘Nothing to echo.‘);
            }, "Echo", "echo", [message]);
        }
    };
});

//cordova_plugins.js  插件配置
cordova.define(‘cordova/plugin_list‘, function(require, exports, module) {
    module.exports = [{
            "file": "plugins/com.JajaCy.cordova.echo/www/echo.js",
            "id": "com.JajaCy.cordova.echo.echo",
            "merges": [
                "window"//调用方法对象
            ]
        }];
    module.exports.metadata =
    // TOP OF METADATA
    {
        "com.JajaCy.cordova.echo": "0.0.1",
    }
    // BOTTOM OF METADATA
});

//调用
 window.echo(‘Hello Echo!‘,function(data){
    alert(data);
 });
时间: 2024-08-07 22:38:18

Cordova+ ios 插件开发的相关文章

cordova ios升级插件

org.ssgroup.sope.cordova.upgrade 支持强制升级与选择升级 插件已经开源在https://github.com/shenshouer/org.ssgroup.sope.cordova.upgrade 新版本号已经更新,但还未提交至github 此插件为一个cordova ios版本号插件,用户检查本地app的一些信息以及从app store中检查是否有新版本号,并提示更新 安装 cordova plugin add https://github.com/shensh

Ios插件开发

Ios插件开发 http://www.exmobi.cn/course/course_26.html Android插件开发 http://www.exmobi.cn/course/course_25.html

[Cordova/Phonegap] Cordova iOS 应用在第三方输入法的键盘弹出(点击输入框)时,页面不上移,导致输入框被键盘遮挡 的解决办法

http://blog.csdn.net/lovelyelfpop/article/details/52033045 Cordova iOS应用在使用系统自带输入法键盘的时候,聚焦文本框是会将整体webview界面上移的,如下图: 然而,如果你用的是第三方输入法(百度.搜狗.qq输入法等都是),聚焦文本框弹出键盘时,界面却不会整体上移,导致文本框被软键盘遮挡,如下图: 不仅被遮挡,靠底部的文本框还无法往上拖拽滚至可视区域. 解决办法一:第三方键盘弹出,实现界面也能上移 使用 ionic-plug

Cordova - IOS浏览器里面数字被当做电话号码

原文:Cordova - IOS浏览器里面数字被当做电话号码 网页上有连续超过5个数字,ios浏览器就会当做手机号码,如果某行文字有颜色,那么这个连续的数字就没颜色,变黑色了. 解决方法:在html页面头部加入下面代码 <meta name="format-detection" content="telephone=no"> <meta http-equiv="x-rim-auto-match" content="no

cordova ios

使用Cordova进行iOS开发 (环境配置及基本用法) 字数1426 阅读3044 评论0 喜欢5 安装Cordova CLI 1. cordova的安装: 1.1 安装cordova需要先安装node.js. 1.2 如果你没有安装git client,需要下载并安装一个git客户端,只是对项目文件进行管理的. 1.3 使用node.js的依赖包管理工具npm来进行cordova安装.打开终端输入如下命令: sudo npm install -g cordova Installing the

PhoneGap入门 iOS 插件开发

老师让研究一下PhoneGap.看一下iOS 和HTML CSS javascript的混合开发.研究了两天,搞出来点东西来记录一下. PhoneGap是什么? PhoneGap是一个开源的开发框架.它允许使用标准的web技术如HTML5.CSS3.javascript进行跨平台开发.也就是使用开发手机app,就不需要一个iOS版本,一个Android版本了.用它一个就够了. Cordova 是什么? cordova是PhoneGap的核心,提供了一套设备相关的API,能够通过javascrip

Cordova自定义插件开发

刚刚接触 phonegap 因为配环境遇到各种各样问题.,所以写一个篇文章希望能给大家节约点时间. 本文主讲windows系统下的phonegap的环境搭建 ,以Android视角为主.iOS用户可参考; 1:首先介绍搭建环境的基本准备: 1 java JDK   (http://www.oracle.com/technetwork/java/javase/downloads/index.html) 2 android SDK  http://developer.android.com/sdk/

[Creating an image format with an unknown type is an error] on cordova, ios 10

在 iOS 10  调用 了 获取  相册的 可编辑 的  照片后,会出现 [Creating an image format with an unknown type is an error] 这个其实不影响app的使用,这个是 iOS10 系统的bug 而已.其实 程序员进行二次调用的时候  并没有  所谓的error.

cordova iOS blank iframe iphone iframe 白屏 ios iframe 白屏

(1)解决方案 http://stackoverflow.com/questions/36572537/cordova-ios-blank-iframe/36587026 在 index.html中配置meta <meta http-equiv="Content-Security-Policy" content="default-src *; frame-src *; style-src * 'self' 'unsafe-inline' 'unsafe-eval'; s