Смотрите ссылку, на которую ответил Павел. Для быстрого бега есть несколько способов сделать это, но мой обычно заканчивается примерно так:
Javascript:
PhoneGap.exec("NameOfObjectiveCFile.nameofMethod","parameter1", "parameter2");
Цель C:
-(void)nameOfMethod:(NSMutableArray*)paramArray withDict: (NSMutableDictionary*) options
{
//Do your stuff
//Access your params you sent in javascript by doing the following
NSString *parameter1 = [paramArray objectAtIndex:0];
//Send stuff back to Javascript using a callback function
NSString *jsCallBack = [NSString stringWithFormat:@"nameofJavascriptFinishedMethod(%@)",parameterToSendBack];
[self.webview stringByEvaluatingJavaScriptFromString:jsCallBack];
}
Вернуться к Javascript:
function nameofJavascriptFinishedMethod(parameterFromObjectiveC)
{
//Do stuff with information from objective C
}
Также помните, что вам нужно зарегистрировать свой плагин в вашем Phonegap.plist
Надеюсь, это поможет, удачи.
Обновление : если вы хотите, чтобы ваш html отправлял информацию вашему плагину, я бы использовал html-форму или кнопку или вызвал бы действие, которое вызовет вашу функцию javascript (первый выше) и передаст ваши переменные собраны из ваших полей. См. ссылку для основ формы.
Обновление 2
1) Создайте новый проект phonegap в xcode и постройте, чтобы получить папку www
2) Добавьте ваши существующие файлы C для целей шифрования в проект
3) Создайте новый целевой класс C, назовите его EncryptPlugin (см. Шаг 5 для следующего)
4) Отредактируйте файл PhoneGap.plist
а) добавить новую запись под Плагины
б) назовите его EncryptPlugin String EncryptPlugin
5) Заголовочный файл для EncryptPlugin должен выглядеть следующим образом
#import <Foundation/Foundation.h>
#import <UIKit/UIkit.h>
#ifdef PHONEGAP_FRAMEWORK
#import <PhoneGap/PGPlugin.h>
#else
#import "PGPlugin.h"
#endif
@interface EncryptPlugin : PGPlugin {
}
-(void) useMyEncryptionFiles:(NSMutableArray*)paramArray withDict:(NSMutableDictionary*)options;
@end
6) Файл реализации должен выглядеть следующим образом
#import "EncryptPlugin.h"
#import "EncryptPacket.h"
@implementation EncryptPlugin
//phonegap magic -- basically ignore
-(PGPlugin*) initWithWebView:(UIWebView*)theWebView
{
self = (PdfCreator*)[super initWithWebView:theWebView];
return self;
}
//The method that your javascript is going to call
-(void) useMyEncryptionFiles:(NSMutableArray*)paramArray withDict:(NSMutableDictionary*)options
{
//This gives you your string
NSString *stringFromJavascript = [paramArray objectAtIndex:0];
EncryptPacket *ep = [[EncryptPacket alloc] init];
NSString *encryptedString = [ep encryptRequest:stringFromJavascript];
NSLog(@"encryptedString = %@",encryptedString);
}
@end
7) В вашем HTML-JavaScript вызовите функцию, используя что-то вроде этого
p1.html
<head><script type="text/javascript" src="encryptdata.js"></script></head>
<body>
<input type="password" name="confirmPassword" id="confirmPassword" value="" />
<input type="button" value="FetchR" onclick="fetchRelation()"/>
</body>
encryptdata.js
function fetchRelation()
{
var getvalue=document.getElementById('confirmPassword').value;
//what is next step....... to send the data to the plugin class
PhoneGap.exec("EncryptPlugin.useMyEncrptionFiles",getValue);
}
Это должно помочь вам начать. Если вы хотите отправить материал обратно в свой HTML-JavaScript, используйте функцию, указанную выше:
NSString *jsCallBack = [NSStringstringWithFormat:@"nameofJavascriptFinishedMethod(%@)",parameterToSendBack];
[self.webview stringByEvaluatingJavaScriptFromString:jsCallBack];
Надеюсь, это поможет, вы сможете понять это с помощью этих инструкций. Возможно, они не идеальны, но у меня не было времени собрать все вместе и скомпилировать, используя ваш код. Удачи.