2016-06-18 2 views
3

Cordova app에 사용자 지정 (CDVPlugin) 플러그 인을 만들었습니다. 이 플러그인을 통해내 사용자 지정 CDVPlugin 클래스 (Objective C Language)에서 javascript 함수를 호출하는 방법

자바 스크립트 파일은 내가 쉽게

CDVPluginResult *pluginResult = nil; 
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:[NSString stringWithFormat:@"%@",deviceUUIDString]]; 
self.delegateCallbackId=command.callbackId; 
[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; 

하지만 어떻게 내 사용자 지정 CDVPlugin 클래스에서 자바 스크립트 함수를 호출하는 방법을 통해 응답을 보낼 수 있습니다 CDVPlugin에 선언 된 메소드를 호출합니다.

답변

1

우리가 CDVCommandDelegate 클래스에 선언하고, 세미콜론 (;)으로 문자열로 함수의 이름을 쓸 수 evalJs로 전화를 자바 스크립트 방법 중 하나를 호출 할 경우 내가 답을 찾을 희망

코르도바에서

: 우리는 당신의 도움이

[self.commandDelegate evalJs:@"callCustomMethodJs();"];

0

당신은

NSString * jsfunctioncall = [NSString stringWithFormat:@"yourjsfunctiontobecalled()"]; 

#ifdef __CORDOVA_4_0_0 
    [self.webViewEngine evaluateJavaScript:jsfunctioncall completionHandler:nil]; 
#else 
    [self.webView stringByEvaluatingJavaScriptFromString:jsfunctioncall]; 
#endif 

당신은 아마 work.For이 당신의 JS를 작동합니다 CDVPlugin로부터 상속 아마 이미 할 필요가있다, 그래서 만약 CDVPlugin, 그 속성으로 webViewEngine 및 웹보기를 가지고 다음과 같은 시도 할 수 있습니다 loaded.I 나 자신을 시도하지 않았습니다.

은 도움이 :)

+0

감사처럼 evaluateJavaScript 방법을 사용할 수 있습니다,하지만 난이 방법을 시도'는 NSString * jsfunctioncall = [있는 NSString strin gWithFormat : @ "callCustomMethodJs()"]; viewController = [[CDVViewController alloc ] init]; [viewController.webViewEngine evaluateJavaScript : jsfunctioncall completionHandler : nil]; ' 성공하지 않음 –

+0

CDVViewController.CDVPlugin의 객체를 만들지 마십시오. webViewEngine 속성과 webView.You는 해당 속성을 사용하여 호출 할 수 있습니다 .JS는 " evaluateJavaScript ". 문제의 업데이트 된 코드를 게시하십시오. 즉,이 코드를 어디에서 작성 했습니까? 도움이 될 수 있습니다. – sanman

+0

귀하의 도움에 감사드립니다. –

관련 문제