我有一个Swift类,它主要用作React Native模块。该模块使用一个看不见的WKWebView来运行,偶尔我会在我的ViewController中将WKWebView指定为子视图来调试我的实现,如下所示:
swiftClass.webView.frame = self.view.frame
self.view.addSubview(swiftClass.webView)
将此功能桥接到React Native的最简单方法是什么?我好像坐在模块和UI组件之间。如果我将其作为UI组件编写,我该如何调用该类的方法?如果我将其作为模块编写,如何将其添加到视图层次结构中?
我应该只使用WebView在React Native中重写模块吗?我很犹豫,因为RN实现使用了比WKWebView慢的UIWebView,我不想污染JS线程并且可能导致任何减速。
答案 0 :(得分:0)
我最终创建了一个桥接模块并添加了这些功能:
@objc func showView() {
dispatch_async(dispatch_get_main_queue(),{
let rootVC = UIApplication.sharedApplication().delegate!.window!!.rootViewController!
self.webView.frame = rootVC.view.frame
rootVC.view.addSubview(self.webView)
})
}
@objc func hideView() {
dispatch_async(dispatch_get_main_queue(),{
self.webView.removeFromSuperview()
})
}
因为我只是在调试情况下调用它们,所以这已经足够了。我可能会重写它们最终使用RN的WebView,但现在不需要重新发明轮子。