PhoneGap插件开发示例(iOS)
重要提示:如果你同时使用phonegap(cordova)和sencha-touch,一定先引入phonegap的js文件,否则你开发的插件可能不被调用!
PhoneGap相关介绍:
PhoneGap官网
PhoneGap中国
PhoneGap插件开发的简单步骤:
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" onclick=‘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 (被墙)
随后附上代码免分下载地址!PhoneGap插件开发示例(iOS),布布扣,bubuko.com
PhoneGap插件开发示例(iOS)