如何从 Cordova 插件添加本机视图
Posted
技术标签:
【中文标题】如何从 Cordova 插件添加本机视图【英文标题】:How can I add a native view from a Cordova plugin 【发布时间】:2014-02-13 22:43:31 【问题描述】:我正在使用最新版本的 Cordova (3.3) 开发插件。我需要在 Cordova 视图中添加原生 UIImageView
。
如果我可以访问例如平台文件夹中的项目,我可以将我的视图添加到属于CDVViewController
的视图实例。但是,我不确定如何从插件访问该引用。
在我的插件里面我有:
@interface CDVCool : CDVPlugin
@property (weak, nonatomic) UIImageView *nativeImageView;
...
@end
我怎样才能通过只修改插件文件来初始化和渲染这个视图?
【问题讨论】:
【参考方案1】:此答案的功劳归于 devgeeks,他向我指出了他的几个插件,MapKit 和 VolumeSlider,它们将原生元素与科尔多瓦 Web 视图混合在一起。
关键是覆盖initWithWebView
方法:
-(CDVPlugin*) initWithWebView:(UIWebView*)theWebView
self = (VolumeSlider*)[super initWithWebView:theWebView];
return self;
现在,在插件中,您可以获得对 cordova web 视图背后的视图控制器的引用,并添加任何您想要的内容。
[self.webView.superview addSubview:mpCustomView];
这很酷,因为您可以控制您添加的任何视图相对于 webView 的 zPosition。因此,您可以将视图放在 Web 视图的上方或下方。
【讨论】:
注意:在较新版本的 Cordova 中,这需要在- (void)pluginInitialize
中完成以上是关于如何从 Cordova 插件添加本机视图的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 ionic/cordova 打开本机添加联系人界面