두 가지 유사한 질문이 있지만 좀 더 기본적인 내용입니다.WebScriptObject를 통해 JS Scripting Environment에 코코아 개체 노출
간단한 코코아 개체를 WebScriptObject를 통해 WebView로 노출하려고합니다. 페이지에서 코코아 개체로 메시지를 보내도록 할 수 있습니다. 이것에 대한 문서는 매우 명확하지만, 어떤 이유로 그것을 작동시킬 수는 없습니다. 궁금한 점이 있으시면 ...
다음은 스크립팅 환경에로드하는 객체입니다.
if('client' in window) {
var client = window.client;
console.log('---');
console.log('client.test(): ' + client.test());
console.log('---');
}
:
사물의 JS 측면에서
- (void)webView:(WebView *)webView didClearWindowObject:(WebScriptObject *)windowObject forFrame:(WebFrame *)frame {
Client *_client = [[Client alloc] init];
[windowObject setValue:_client forKey:@"client"];
}
, 내가 정말 기본적인 일을하고 그런 다음
@interface Client : NSObject {
NSString *test;
}
@implementation Client
- (id)init {
self = [super init];
test = [[NSString alloc] initWithString:@"Hey Simon"];
return self;
}
- (NSString *)test {
return test;
}
내가 함께, 웹보기의 frameLoad 위임에 해당 객체를로드하고있어
JS 콘솔에 TypeError가 표시됩니다. 'client.test'표현식 결과 [undefined]가 함수가 아닙니다.
몇 가지.
console.log('Client object: ' + client)
하지만 난 그냥 제대로 내 코코아 방법을 노출하는 방법을 모른다 : 나는 조건을 통과하지 않을 플러스 내가 함께 설명을 볼 수 있습니다 제대로 때문에 개체가 스크립팅 환경에로드되는 알고있다. 위에서 말한 것을 살펴보면, 수업에서 메소드를 구현하는 방법이나 JS에서 호출하는 방법에 문제가 있습니까? 사전에
감사합니다, 알렉