我试图通过WebScriptObject将一个简单的Cocoa对象暴露给WebVIEw,希望允许页面将消息发送到Cocoa对象.关于此的文档非常清楚,但由于某种原因,我无法让它工作.想知道你是否看看……
这是我正在加载到脚本环境中的Object.
@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:表达式’clIEnt.test'[undefined]的结果不是函数.
有几件事.我知道对象正在被正确加载到脚本环境中,因为它不会通过条件加我可以看到描述:
console.log( 'ClIEnt object: ' + clIEnt )
但我只是不知道如何正确地暴露我的可可方法.看看我上面所说的,我是如何在我的类中实现方法或在Js中调用它们有一些问题?
提前致谢,
亚历克
以上是内存溢出为你收集整理的javascript – 通过WebScriptObject将Cocoa对象暴露给JS脚本环境全部内容,希望文章能够帮你解决javascript – 通过WebScriptObject将Cocoa对象暴露给JS脚本环境所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)