javascript – 通过WebScriptObject将Cocoa对象暴露给JS脚本环境

javascript – 通过WebScriptObject将Cocoa对象暴露给JS脚本环境,第1张

概述我看到有几个类似的问题,但这有点基础. 我试图通过WebScriptObject将一个简单的Cocoa对象暴露给WebView,希望允许页面将消息发送到Cocoa对象.关于此的文档非常清楚,但由于某种原因,我无法让它工作.想知道你是否看看…… 这是我正在加载到脚本环境中的Object. @interface Client : NSObject { NSString *test;} 我看到有几个类似的问题,但这有点基础.

我试图通过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脚本环境所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1072274.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存