在JavaScript(JS)与Objective-C(OC)的交互中,特别是在使用如WebView这样的组件时,经常需要从JS中访问OC的成员变量或调用OC的方法。以下是关于如何在JS中获取OC成员变量的基础概念、相关方法及其应用场景:
JSContext
是JavaScript代码运行的环境,可以执行JS代码并存储JS的全局对象。@protocol MyJSExports <JSExport>
- (NSString *)get OCString;
@end
@interface MyClass : NSObject <MyJSExports>
@property (nonatomic, strong) NSString *ocString;
@end
@implementation MyClass
- (NSString *)getOCString {
return self.ocString;
}
@end
示例代码(JS):
var myObj = // 通过桥接层获取MyClass的实例
console.log(myObj.getOCString()); // 调用OC方法
evaluateJavaScript
方法:
如果你只是想从JS中获取某个OC对象的属性值,可以在OC中提供一个方法来返回该值,然后在JS中调用这个方法。JSExport
协议,并且公开的方法和属性是正确的。同时,确保在JS中正确地获取到了OC对象的实例。总之,JS与OC之间的交互需要一个明确的桥接层,并确保遵循正确的协议和方法调用约定。
领取专属 10元无门槛券
手把手带您无忧上云