ionic cordova plugin for ios

源代码结构目录:

payplugin:

|_src

  |_android

    |_PayPlugin.java

  |_ios

    |_CDVPayPlugin.h

    |_CDVPayPlugin.m

|_www

  |_payplugin.js

plugin.xml

--======================================

payplugin/www/payplugin.js

var exec = require(‘cordova/exec‘);
/*
window.payplugin = function(str, callback) {
cordova.exec(callback, function(err) {
callback(‘Nothing to echo.‘);
}, "jsnative", "echo", [str]);
};
//var o = new window.echo();
module.exports = window.payplugin;*/

/*
var HelloWorld = function() {};

HelloWorld.prototype.say = function() {
alert("Hello World");
};

var helloWorld = new HelloWorld();
module.exports = helloWorld;
*/

/*window.payplugin = {};
window.payplugin.add = function(args,args2,addSuc,addFaild) {
cordova.exec(addSuc, addFaild, "payplugin", "add", [args,args2]);
}
module.exports = window.payplugin;*/

var PayPlugin = function() {};

PayPlugin.prototype.pay = function(args,args2,addSuc,addFaild) {
cordova.exec(addSuc, addFaild, "payplugin", "pay", [args,args2]);
}

var payPlugin = new PayPlugin();
module.exports = payPlugin;

payplugin\plugin.xml

<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
id="com.youpin.payplugin"
version="1.0.0">
<name>payplugin</name>
<description>Pay Plugin</description>
<license>Apache 2.0</license>
<keywords>payplugin</keywords>

<js-module src="www/payplugin.js" name="payplugin">
<clobbers target="PayPlugin" />
</js-module>

<!-- ios -->
<platform name="ios">
<config-file target="config.xml" parent="/*">
<feature name="payplugin">
<!-- CDVPayPlugin是类名 -->
<param name="ios-package" value="CDVPayPlugin"/>
</feature>
</config-file>

<header-file src="src/ios/CDVPayPlugin.h" />
<source-file src="src/ios/CDVPayPlugin.m" />
</platform>

<!-- android -->
<platform name="android">
<config-file target="res/xml/config.xml" parent="/*">
<feature name="payplugin" >
<param name="android-package" value="com.youpin.payplugin"/>
</feature>
</config-file>

<source-file src="src/android/PayPlugin.java" target-dir="src/com/youpin/payplugin" />
</platform>
</plugin>

--=======================================

payplugin\src\ios\CDVPayPlugin.h

#import <UIKit/UIKit.h>
#import <Cordova/CDVPlugin.h>
#import <Cordova/CDV.h>

@interface CDVPayPlugin : CDVPlugin

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

@end

--=======================================

payplugin\src\ios\CDVPayPlugin.m

#import "CDVPayPlugin.h"
#import <Cordova/CDV.h>

@implementation CDVPayPlugin

- (void) pay:(CDVInvokedUrlCommand*)command{
CDVPluginResult* pluginResult = nil;
NSString* javaScript = nil;

@try {

NSString* prod = [command.arguments objectAtIndex:0];
NSString* money = [command.arguments objectAtIndex:1];

if (prod != nil
&& [prod length] > 0
&& money != nil
&& [money length] > 0) {

/**
*相加字符串
*/
NSString *addResult = [NSString stringWithFormat:@"%@%@", prod, money];
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:addResult];
javaScript = [pluginResult toSuccessCallbackString:command.callbackId];

} else {
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR];
javaScript = [pluginResult toErrorCallbackString:command.callbackId];
}
} @catch (NSException* exception) {
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_JSON_EXCEPTION messageAsString:[exception reason]];
javaScript = [pluginResult toErrorCallbackString:command.callbackId];
}

[self writeJavascript:javaScript];
}

@end

--============================================

payplugin\src\android\PayPlugin.java

package com.youpin;

import org.apache.cordova.CordovaPlugin;
import android.content.Context;
import android.util.Log;

public class PayPlugin extends CordovaPlugin {
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if (action.equals("pay")) {
String arg1 = args.getString(0);
String arg2 = args.getString(1);
String message = "result is:" + arg1 + arg2;
this.echo(message, callbackContext);
return true;
}
return false;
}
}

安装方法

ionic plugin add payplugin

ionic build ios

uninstall:

ionic plugin remove com.youpin.payplugin

调用方法:

.controller(‘ChatDetailCtrl‘, function($scope, $stateParams, Chats) {

$scope.$on(‘$ionicView.enter‘, function(e) {

/*navigator.jsnative("echome", function(echoValue) {
alert(echoValue); // should alert true.
});*/

PayPlugin.pay("youbi6","6.00",$scope.addSuc,$scope.addFiald);
});

/** 
* js回调函数 
*/ 
$scope.addSuc = function(result) {
  alert(result);
  console.log(‘addSuc=‘+result);
}
$scope.addFiald = function() {
  console.log(‘addFiald‘);
}
})

时间: 2024-08-05 06:18:44

ionic cordova plugin for ios的相关文章

ionic cordova plugin 安装和使用

注意事项 ionic1需要ng-cordova plugin的使用都需要放到deviceready事件的回调中, 设备准备好了才能设备交互 plugin只有在真机上才有效果, 模拟器(部分)和browser中是无效的 插件安装 官网Doc - http://cordova.apache.org/docs/en/latest/guide/cli/index.html#add-plugins ionic cordova plugin add cordova-plugin-camera 插件的引入 i

在meteor中如何使用ionic组件tabs,及如何添加使用cordova plugin inappbrower

meteor框架的优点不言而喻,它大大减轻了App前后端开发的负担,今年5月又获得B轮2000万融资,代表了市场对它一个免费.开源开发框架的肯定.cordova的优点就是插件多,ionic的优点是UI漂亮并且性能是目前hybird框架中最好的,本文涉及到的技术为作者所用,简述meteor+cordova+ionic的整合方法. 1,创建项目 meteor create projectName cd [projectName] meteor add urigo:angular meteor add

Android开发学习--Ionic+Cordova 环境搭建

我们看 Ionic 能给我们提供什么?  一个样式库,你可以使用它 来 装饰你的 HTML 网页 ,看起来 想 移动程序的 界面,什么 header .content.footer.grid.list.这貌似没什么 实质性的东西, sencha touch ,jq 都能提供 .一个用 AngularJS 写的 工具库,姑且叫它 组件库吧.Ionic的 grid 设计的比较合理,比 bootstrap的 更强大.当然它 还包含 了angular-animate.angular-resource.a

node+mongodb+ionic+cordova

node + mongodb1,环境 windows 1,install nodejs 2,install npm | cd npmjs node cli.js install -gf1.1 2.node 开发nmp install express -g | nmp remove express -g npm install express-mongoose 1,express -e myProject ejs change htmlvar ejs = require('ejs') ;app.e

cordova plugin 大全及安装命令

前言:用cordova开发hybrid app的过程中,由于是html5开发的app,在手机上很多权限受限制,这就导致了我们需要安装很多插件来弥补这一缺点.在网上搜了好久,感觉都不是很全,所以自己整理了一份cordova plugin清单. 1.获取当前应用的版本号 cordova plugin add cordova-plugin-app-version 2.获取网络连接信息 cordova plugin add cordova-plugin-network-information 3.获取G

[Cordova] Plugin开发架构

[Cordova] Plugin开发架构 问题情景 开发Cordova Plugin的时候,侦错Native Code是一件让人困扰的事情,因为Cordova所提供的错误讯息并没有那么的完整.常常需要花费大量的时间与精神之后,才发现只是一个字母打错,无形中降低了开发的效率. 解决方案 为了增加Cordova Plugin开发的效率,开发人员可以套用下列的开发架构,来加速开发: 将实际提供功能的Native Code,使用IDE封装为Native Library.在这个步骤中,使用IDE封装Nat

cordova无法删除ios插件的解决办法

错误如下: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff; min-height: 13.0px } span.s1 { } Unin

[Cordova] Plugin开发入门

[Cordova] Plugin开发入门 Overview Cordova的设计概念,是在APP上透过Web控件来呈现Web页面,让Web开发人员可以操作熟悉的语言.工具来开发APP.使用Web页面来呈现功能内容,的确可以满足大部分的功能需求,但是因为APP的使用情景毕竟有别于Web,某些APP的功能需求像是:拨打电话.扫描条形码...等等,无法单纯使用Web开发技术就能实现. 为了让Web页面能够满足更多的APP功能需求,Cordova提供了Plugin机制,让Web页面能够挂载并调用Nati

搭建 AngularJS+Ionic+Cordova 开发环境并运行一个demo

目前的手机APP有三类:原生APP,WebAPP,HybridApp:HybridApp结合了前两类APP各自的优点,越来越流行. Cordova就是一个中间件,让我们把WebAPP打包成HybridAPP,并且它提供了非常多的插件,方便我们使用原生APP的功能. Ionic是一个界面样式库,仿照原生的ios和android界面:同时它是基于AngularJs的. 本文我们在win7中搭建 AngularJS+Ionic+Cordova 开发环境,包括所涉及的Node.js.Cordova CL