1 新建一个基于PhoneGap的工程,如果还没有PhoneGap SDK请去官网下载安装,我目前使用的是PhoneGap1.3.0
2 在Plugins组下新建一个PGPlugin类的子类,命名为MyPGPlugin
MyPGPlugin.h
#ifdef PHONEGAP_FRAMEWORK
#import <PhoneGap/PGPlugin.h>
#else
#import "PGPlugin.h"
#endif
@interface MyPGPlugin : PGPlugin {
}
- (void)addStr:(NSMutableArray*)arguments withDict:(NSDictionary*)options;
@end
MyPGPlugin.m
#import "MyPGPlugin.h"
@implementation MyPGPlugin
- (void)addStr:(NSMutableArray*)arguments withDict:(NSDictionary*)options
{
NSLog(@"%@", arguments);
NSString *callbackId = [arguments pop];
NSString *result = [NSString stringWithFormat:@"%@%@", [arguments objectAtIndex:0], [arguments objectAtIndex:1]];
PluginResult *pr = [PluginResult resultWithStatus:PGCommandStatus_OK messageAsString:result];
[self writeJavascript:[pr toSuccessCallbackString:callbackId]];
}
@end
3 在www文件夹下新建一个js文件,这里我也命名为MyPGPlugin
/**
* 构造方法
*/
function MyPGPlugin() {
};
/**
* 字符串相加
*
* @param str1, str2
*/
MyPGPlugin.prototype.addStr = function(successCallback, failureCallback, str1, str2) {
PhoneGap.exec(successCallback, failureCallback, "MyPGPlugin", "addStr", [str1, str2]);
};
/**
* 加载MyPlugin对象
*/
PhoneGap.addConstructor(function() {
if(!window.plugins)
{
window.plugins = {};
}
window.plugins.myPGPlugin = new MyPGPlugin();
});
4 修改PhoneGap.plist,展开Plugins,按”+”号新加一列.添加key MyPGPlugin和value MyPGPlugin
5 使用,在index.html中添加如下代码:
导入js文件
<script type="text/javascript" charset="utf-8" src="MyPGPlugin.js"></script>
定义js函数,添加在onDeviceReady函数定义后
function addStr(){
var str1 = "str1";
var str2 = "str2";
window.plugins.myPGPlugin.addStr(successCallback, failureCallback, str1, str2);
}
//成功时回调的方法
function successCallback(data){
alert("result:"+ data);
}
//失败时返回的方法
function failureCallback(data){
alert("error:"+ data);
}
添加一个button,测试一下
<button type="button" οnclick='addStr()'>MyPGPlugin Test</button>
6 编译运行。
参考链接:
http://www.adobe.com/devnet/html5/articles/extending-phonegap-with-native-plugins-for-ios.html
http://prostorys.blog.51cto.com/1522778/843699
http://wiki.phonegap.com/w/page/36753496/How%20to%20Create%20a%20PhoneGap%20Plugin%20for%20iOS