를 호출하는 방법 Objective-C 방법에서 자바스크립트는 코코아/웹킷 응용 프로그램?
-
01-07-2019 - |
문제
나는 코코아를 사용하는 응용 프로그램 WebView 를 표시하는 HTML 인터페이스입니다.어떻게 내가에 대해 이동 전화 Objective-C 방법에서 자바스크립트 함수에서 HTML 하시겠습니까?
해결책
이 문서 developer.apple.com.
다른 팁
는 경우에 당신은 그것을 하고 싶으십시에 아이폰 앱,당신이 할 필요가와 UIWebViewDelegate 방법 shouldStartLoadWithRequest:
이 api http://code.google.com/p/jsbridge-to-cocoa/ 당신을 위해 그것을 않습니다.그것은 매우 가볍습니다.
오히려 그린,애플의 문서가요 나를 위해,그래서 내가 만들 개념의 증거를 호출하는 방법을 목표 C 에서 자바 스크립트와 그 반대에서 코코아하지만,후자는 훨씬 더 쉽습니다.
첫 번째가 있는지 확인 webview 로 setFrameLoadDelegate:
[testWinWebView setFrameLoadDelegate:self];
당신을 말할 필요 webview 계 특정 개체에 대한 한 빨리 그것은:
- (void)webView:(WebView *)sender didClearWindowObject:(WebScriptObject *)windowScriptObject forFrame:(WebFrame *)frame {
//add the controller to the script environment
//the "ObjCConnector" object will now be available to JavaScript
[windowScriptObject setValue:self forKey:@"ObjCConnector"];
}
그런 다음 비즈니스의 커뮤니케이션:
// a few methods to log activity
- (void)acceptJavaScriptFunctionOne:(NSString*) logText {
NSLog(@"acceptJavaScriptFunctionOne: %@",logText);
}
- (void)acceptJavaScriptFunctionTwo:(NSString*) logText {
NSLog(@"acceptJavaScriptFunctionTwo: %@",logText);
}
//this returns a nice name for the method in the JavaScript environment
+(NSString*)webScriptNameForSelector:(SEL)sel {
NSLog(@"%@ received %@ with sel='%@'", self, NSStringFromSelector(_cmd), NSStringFromSelector(sel));
if(sel == @selector(acceptJavaScriptFunctionOne:))
return @"functionOne"; // this is what you're sending in from JS to map to above line
if(sel == @selector(acceptJavaScriptFunctionTwo:))
return @"functionTwo"; // this is what you're sending in from JS to map to above line
return nil;
}
//this allows JavaScript to call the -logJavaScriptString: method
+ (BOOL)isSelectorExcludedFromWebScript:(SEL)sel {
NSLog(@"isSelectorExcludedFromWebScript: %@", NSStringFromSelector(sel));
if(sel == @selector(acceptJavaScriptFunctionOne:) ||
sel == @selector(acceptJavaScriptFunctionTwo:))
return NO;
return YES;
}
키에는 여러 개 있는 경우 방법이라고 부르고 싶어요,당신은 그들 모두는 제외에서 isSelectorExcludedFromWebScript 방법,그리고 당신은 필요한 자바스크립트를 호출하여 지도를 ObjC 방법에 webScriptNameForSelector.
전체 프로젝트 개념의 증거 file:https://github.com/bytestudios/JS-function-and-ObjC-method-connector
저는 솔루션을 사용하여 NimbleKit.수출 목적은 C 함수에서 Javascript.