由于出现以下错误,我无法从其他应用程序/框架调用此快速文件。
“未知的类名'WKScriptMessageHandler'”
这是我在框架中声明的mySwift.swift。
@objcMembers public class HSIWKJavascriptBridge : NSObject, WKScriptMessageHandler{
public func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
if message.name == "test", let messageBody = message.body as? String {
print(messageBody)
}
}
}
swift编译器在编译时自动生成此代码。
@class WKUserContentController;
@class WKScriptMessage;
SWIFT_CLASS("_TtC5MyFwk21HSIWKJavascriptBridge")
@interface HSIWKJavascriptBridge : NSObject <WKScriptMessageHandler>
- (void)userContentController:(WKUserContentController * _Nonnull)userContentController didReceiveScriptMessage:(WKScriptMessage * _Nonnull)message;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end
现在错误是WKScriptMessageHandler没有像
那样自动声明。@class WKUserContentController;
@class WKScriptMessage;
由于无法使用该框架。
答案 0 :(得分:0)
我在“项目”设置中尝试了与您同样的HSIWKJavascriptBridge
快速班。我可以在我的Obj-C文件中使用此类,没有任何问题。
由于WKScriptMessageHandler
是protocol
,因此不会在快速编译器生成的代码中将其向前声明为其他类(WKUserContentController
,WKScriptMessage
)。
请确保在您的Swift文件中添加了import WebKit
。