Я вижу, что есть пара похожих вопросов, но это немного более простой вопрос.
Я пытаюсь представить простой объект Cocoa через WebScriptObject для WebView, надеюсь, что страница позволит отправлять сообщенияКакао-объект.Документация по этому вопросу очень ясна, но по какой-то причине я не могу заставить ее работать.Хотите знать, посмотрите ли вы ...
Вот объект, который я загружаю в среду сценариев.
@interface Client : NSObject {
NSString *test;
}
@implementation Client
- (id)init {
self = [super init];
test = [[NSString alloc] initWithString:@"Hey Simon"];
return self;
}
- (NSString *)test {
return test;
}
Затем я загружаю этот объект в WebView.делегат frameLoad с:
- (void)webView:(WebView *)webView didClearWindowObject:(WebScriptObject *)windowObject forFrame:(WebFrame *)frame {
Client *_client = [[Client alloc] init];
[windowObject setValue:_client forKey:@"client"];
}
На стороне JS я просто делаю что-то действительно простое:
if( 'client' in window ) {
var client = window.client;
console.log( '---' );
console.log( 'client.test(): ' + client.test() );
console.log( '---' );
}
Консоль JS говорит TypeError: Result of expression 'client.test '[undefined] не является функцией.
Пара вещей.Я знаю, что объект загружается в среду сценариев должным образом, потому что он не пройдет условного плюс, я вижу описание с:
console.log( 'Client object: ' + client )
Но я просто не знаю, как выставить мои методы какаодолжным образом.Глядя на то, что я сказал выше, есть ли проблемы с тем, как я реализую методы в своем классе или вызываю их в JS?
Заранее спасибо, Алек