基于PhoneGap3.4框架的iOS插件的实现
2024-07-08 08:42:46 221人阅读
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=http://www.mamicode.com/"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("调用失败!"); }
|
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉:
投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。