前沿
废话不说phoneGap是什么不多介绍,官方网站: http://phonegap.com/
之前写过phoneGap开发Android插件教程: http://my.oschina.net/jgy/blog/145385
开始代码
这个是目录结构
在Plugins下新建文件(在Plugins上右键-new file选择Objective-c class)输入名字(CDVMyPlugin) next……
这世间你会发现在Plugins下面有两个文件,分别是:CDVMyPlugin.h和CDVMyPlugin.m
CDVMyPlugin.h内容:
#import <Foundation/Foundation.h>
#import <Cordova/CDVPlugin.h>
@interface CDVMyPlugin : CDVPlugin
@property (nonatomic, copy) NSString* callbackID;
// Instance Method
- (void) print:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options;
@end
CDVMyPlugin.m内容
#import "CDVMyPlugin.h"
@implementation CDVMyPlugin
@synthesize callbackID;
-(void)print:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options
{
// 这是classid,在下面的PluginResult进行数据的返回时,将会用到它
self.callbackID = [arguments pop];
// 得到Javascript端发送过来的字符串
NSString *stringObtainedFromJavascript = [arguments objectAtIndex:0];
// 创建我们要返回给js端的字符串
NSMutableString *stringToReturn = [NSMutableString stringWithString: @"我是返回的:"];
[stringToReturn appendString: stringObtainedFromJavascript];
// Create Plugin Result
CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString: stringToReturn];
NSLog(@ "%@",stringToReturn);
// 检查发送过来的字符串是否等于"HelloWorld",如果不等,就以PluginResult的Error形式返回
if ([stringObtainedFromJavascript isEqualToString:@"HelloWorld"] == YES){
// Call the javascript success function
[self writeJavascript: [pluginResult toSuccessCallbackString:self.callbackID]];
} else{
// Call the javascript error function
[self writeJavascript: [pluginResult toErrorCallbackString:self.callbackID]];
}
}
JS封装通用调用方法
//调用IOS方法插件
var MyIOSPlugin = {
/**
* 调用IOS方法
* @param method 要调用IOS插件的方法名
* @param parameter 参数[数组]
* @param success 成功回调
* @param fail 失败回调
* @returns {*}
*/
nativeFunction: function(method, parameter, success, fail) {
return Cordova.exec(success, fail, "MyPlugin", method, parameter);
}
};
JS调用
MyIOSPlugin.nativeFunction("print",['HelloWorld'],
function(result) {
// alert("Success: \r\n"+result);
},
function(error) {
// alert("Error: \r\n"+error);
}
);
配置插件<KEY-VALUE>
<feature name="MyPlugin">
<param name="ios-package" value="CDVMyPlugin" />
</feature>
OVER!
最后:以上是本人测试成功后以及经验分享,欢迎吐槽交流!嘎嘎~~~~
原文链接:
http://my.oschina.net/jgy/blog/175643
分享到:
相关推荐
Phonegap项目中,使用js脚本调用ios中OC代码,需要使用Phonegap提供的一个脚本插件:cordova.js
JavaScript接口暴露给应用程序,使得在Web层可以调用插件方法,而原生代码则负责与iOS系统进行交互,执行实际的功能操作。 1. **创建自定义插件** - 首先,在PhoneGap项目中创建一个新的目录,如`src/ios/Plugin...
- 使用以下 JavaScript 方法来调用短信插件: - `showSMSComposer`:这个方法接受两个参数,第一个是收件人的电话号码(多个号码用逗号分隔),第二个是短信内容。例如,`window.plugins.smsComposer....
2. **plugin.xml**:Cordova/PhoneGap插件的配置文件,定义了插件的元数据、依赖项和插件方法。 3. **src** 文件夹:存放原生代码,如iOS平台的Objective-C或Swift代码,实现与JavaScript的桥接。 4. **www** 文件夹...
在PHONEGAP新手开发插件的时候,总会遇到一些NATIVE调用JS的代码问题,这里给出了一个OBJECTIVE-C 与 JS通过UIWEBVIEW进行相互调用的例子,给定了同步调用与异步调用的方法更多详细的部分请参考KAITIREN博客;
这个"phonegap开发插件合集"是一个包含了多种PhoneGap插件的资源包,覆盖了Android和iOS等多个平台,为开发者提供更丰富的功能扩展。 首先,我们来看看"短信收发插件"。在移动应用中,发送和接收短信是一项常见的...
总结来说,PhoneGap iOS的Web应用插件Demo是一个学习和实践PhoneGap插件开发的实例,通过PANativeBridgeDemo,开发者可以了解到如何创建、使用和管理自定义插件,以便在Web应用中充分利用iOS设备的功能。这样的实践...
在PhoneGap中,Plugin是连接Web层和Native层的桥梁,它们是用Java(对于Android)或Objective-C/Swift(对于iOS)编写的,并且通过Cordova/PhoneGap的Bridge机制与JavaScript进行通信。 首先,创建一个自定义Plugin...
Cordova的通讯录插件是项目的关键部分,它允许JavaScript代码访问iOS的联系人框架。这个插件通常包含以下功能: - 获取联系人列表 - 搜索特定联系人 - 创建新的联系人 - 更新已存在的联系人 - 删除联系人 3. ...
PhoneGap通过封装和扩展各个平台的WebView,使得JavaScript可以直接调用设备功能,从而实现了混合应用的开发。 在开发PhoneGap应用时,首先需要搭建开发环境。这包括以下几个步骤: 1. 安装Java SDK:Java SDK是...
5. **调用插件**:在你的JavaScript代码中,你可以通过`window.plugins`对象调用插件方法,如`window.plugins.myPlugin.someFunction()`。 6. **编译和测试**:最后,确保在每个平台上正确地编译和运行你的应用,...
PhoneGap iOS工程实例是将HTML、CSS和JavaScript应用于iOS应用开发的一种方法,它允许开发者使用熟悉的Web技术构建原生移动应用程序。PhoneGap是Adobe提供的一个开源框架,它基于Cordova,利用WebView(在iOS上是...
这个插件的目的是桥接JavaScript和Android原生代码,使PhoneGap/Cordova应用能够调用支付宝SDK,实现支付流程。 集成这个插件的过程大致如下: 1. **安装插件**:首先,开发者需要在项目的配置文件(config.xml)...
这种交互机制使得开发者可以利用JavaScript的便利性来调用iOS的API,实现复杂的原生功能。PhoneGap插件的使用大大降低了开发多平台应用的复杂度,提高了开发效率。 创建PhoneGap插件的过程通常包括以下几个步骤: ...
PhoneGap 开发的主要优势在于它的跨平台性,覆盖了包括 Android、iOS、BlackBerry 在内的多个操作系统,并且还在不断扩展支持更多的平台。对于那些不熟悉 Objective-C 或 Java 的 Web 开发者来说,PhoneGap 提供了一...
5. **编写JavaScript代码**:在项目的HTML和JavaScript文件中,可以调用PhoneGap提供的API接口,这些接口会触发插件中的原生代码执行。例如,如果Kandy插件提供了发起通话的功能,开发者可以在JavaScript中调用相应...
PhoneGap的吸引力在于它提供了一个统一的开发环境,使得开发者可以使用他们熟悉的Web技术来开发适用于iOS、Android、Windows Phone等多个平台的应用。 在"PhoneGap常用插件"这个主题中,我们将探讨PhoneGap生态系统...
当JavaScript调用特定的插件方法时,PhoneGap会通过CordovaWebView将请求转发到相应的设备API,实现对硬件功能的访问,如摄像头、GPS、加速度计等。 2. **PhoneGap2.9.1插件结构** - `config.xml`:配置文件,声明...
这个"IOS应用源码之phonegap原生代码与js交互.zip"文件包含了一个示例,展示了如何在iOS应用中通过PhoneGap实现JavaScript和原生代码之间的交互。 首先,理解PhoneGap的工作原理至关重要。PhoneGap提供了一层名为...