Cordova:我可以在 div 中显示本机应用程序组件吗?

Posted

技术标签:

【中文标题】Cordova:我可以在 div 中显示本机应用程序组件吗?【英文标题】:Cordova: can I display a native application component in a div? 【发布时间】:2013-05-12 03:33:16 【问题描述】:

我正在考虑使用 Cordova 构建移动应用程序。主要驱动因素是我希望能够将我的应用程序移植到多个平台,而无需重新编写表示层。我喜欢 Angular 和 jQuery Mobile,我觉得与开发多个原生表示层相比,它们可以更轻松地制作出高质量的表示。

需要注意的是,应用程序的一个组件稍微复杂一些。我想利用原生 SDK 来编写这个特定的组件,并让它与我的应用程序的其余部分无缝地工作——作为一个嵌入式子视图。我认为我可以通过编写一个 Cordova 插件来优雅地解决这个问题。阅读文档,我了解了如何编写“无头”插件,或者在 Web 视图前弹出打开的插件,并在其处于活动状态时覆盖显示。但是我可以在 web-app 内的 <div> 中显示带有 UI 的插件吗?

例如,假设我的原生组件是原生的“地址簿”视图(在 ios 中,这个模块有一个 ViewController 来呈现它的显示)。我想将它呈现在页面中 <div> 的某个位置,在那里我仍然可以看到我的应用程序标题 - 在我完成选择之前不要让它在我的整个应用程序上方弹出。

我发现可以将 CordovaWebView 嵌入到本机应用程序中。但我想知道是否也可以采用其他方式。

【问题讨论】:

你有没有想过弗雷德里克?我面临着类似的问题:***.com/q/21767146/527559 没有任何直接的方式,没有 【参考方案1】:

据我所知,Cordova/PhoneGap 不允许在 webview 中使用本机组件。

有一个用于访问设备联系人列表/地址簿here的插件。有了这个,您可以获得所有联系人的列表,并将它们与您自己的 UI 一起插入到您的应用程序中。可能需要做更多的工作,但应该可以完成工作。

【讨论】:

【参考方案2】:

您可以在 webview 中使用原生组件,但不能将它们嵌入到 html 元素中,这意味着原生组件将保留在 html 之上。

通过一些工作,您可以使其适合 div 位置,因此它似乎在 div 内部,但如果您的 html 页面有滚动,则可能很难甚至不可能使本机视图移动卷轴。

【讨论】:

以上是关于Cordova:我可以在 div 中显示本机应用程序组件吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 Cordova 中发送和阅读通过本机 SMS 应用程序发送的 SMS 内容

在 PhoneGap/Cordova 1.5.0 中显示启动画面

如何使用手机的本机应用程序打开图像 - Cordova / phonegap

Cordova - 通过单击按钮打开本机电子邮件应用程序

在本机 IOS 应用程序中加载多个 Cordova 微应用程序

从自定义 cordova 应用程序启动本机应用程序