передача значения из нативного кода iOS в Cordova

У меня есть некоторые значения, сгенерированные из моего собственного кода, которые я хотел бы передать в phonegap. Эти данные генерируются в режиме реального времени и не зависят напрямую от действий пользователя через графический интерфейс phonegap. Мой собственный код является частью плагина, который я сделал.

Как лучше всего подойти к этому? Я хочу иметь функцию для отправки данных в любое время и иметь слушателя на стороне кордовы. Я использую Cordova 1.5 с Xcode 4.3.

Вот что у меня есть:

swipe.js:

var swipe={
     callNativeFunction: function (success, fail, resultType) {
    return Cordova.exec( success, fail, 
                        "ca.swipe", 
                        "nativeFunction", 
                        [resultType]); }

};

index.html:

...

function callNativePlugin( returnSuccess ) {
            swipe.callNativeFunction( nativePluginResultHandler, nativePluginErrorHandler, returnSuccess );
        }

        function nativePluginResultHandler (result) {
            alert("SUCCESS: \r\n"+result );
        }

        function nativePluginErrorHandler (error) {
            alert("ERROR: \r\n"+error );
        }...  <body onload="onBodyLoad()">     <h1>Hey, it's Cordova!</h1>

      <button onclick="callNativePlugin('success');">Success</button>
      <button onclick="callNativePlugin('error');">Fail</button>

  </body>...

пролистнуть.ч:

...
@interface swipe : CDVPlugin
- (void) nativeFunction:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options;
@end

пролистнуть.м:

...
- (void) nativeFunction:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options {

    NSLog(@"Hello, this is a native function called from PhoneGap/Cordova!");

    //get the callback id
    NSString *callbackId = [arguments pop];
    NSString *resultType = [arguments objectAtIndex:0];     
    NSMutableArray *GlobalArg=arguments;

    CDVPluginResult *result;
    if ( [resultType isEqualToString:@"success"] ) {
       result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString: @"Success :)"];
       //writes back the smiley face to phone gap. 
       [self writeJavascript:[result toSuccessCallbackString:callbackId]];
    }

...

В коде, который у меня есть сейчас, нет ничего для того, чтобы делать то, что я хочу. Я не совсем уверен, как настроить код как в Cordova, так и в родном.

7
задан Stéphane Péchard 23 January 2014 в 13:06
поделиться