你可以捆绑一个 Objective-C iPhone 应用程序和一个 HTML5 (PhoneGap) iPad 应用程序来制作一个通用应用程序吗?

Posted

技术标签:

【中文标题】你可以捆绑一个 Objective-C iPhone 应用程序和一个 HTML5 (PhoneGap) iPad 应用程序来制作一个通用应用程序吗?【英文标题】:Can you bundle an Objective-C iPhone app and an HTML5 (PhoneGap) iPad app to make one universal app? 【发布时间】:2013-01-03 18:48:19 【问题描述】:

这些应用提供相同的功能,但具有不同的代码库。

这可能吗?

【问题讨论】:

【参考方案1】:

在这种情况下,我不完全确定您所说的“捆绑”是什么意思。 PhoneGap 提供了将您的应用程序部署到众多平台(iosandroid、Windows Phone)的能力,只需编写 html5、CSS 和 javascript。您的问题表明您有一个为 PhoneGap 平台编写的应用程序的功能 HTML5 版本。如果是这样的话,Objective-C iPhone 应用程序的需求是什么?只需维护 HTML5 应用程序就足以部署到 iPad 和 iPhone。 PhoneGap 目前支持 iOS、iPad 和 Retina 显示器。

从PhoneGap documentation,您可以使用config.xml 指定界面中的差异。

【讨论】:

原生应用允许应用内购买;此功能将添加到 HTML5 应用程序中。但是,由于应用程序目前是单独分发的,用户将无法将他们的购买/订阅从 iPhone 应用程序转移到 iPad 应用程序,反之亦然。因此产生了“捆绑”应用程序的想法。【参考方案2】:

您可以相当轻松地混合 phonegap 和本机代码 - 只需让启动代码检查平台类型并显示本机视图或 phonegap webview。

但是,此时您所做的任何事情都会给用户带来一些不便 - 跨设备共享应用购买的唯一方法是拥有一个通用应用。如果您想保留现有购买,则必须将 ipad 视图添加到现有 iphone 应用程序,但这不会显示为任何拥有现有 iPad 应用程序的人的更新。

还有其他可能性,例如设置服务器来跟踪两个应用中的购买情况,但这比应用购买中的标准要复杂得多,并且只有在您的应用包含登录系统时才有效。

【讨论】:

澄清一下,如果我更新 iPhone 应用程序以使其具有通用性,然后在启动时添加平台类型检查(iPhone?加载 Obj-C 代码/iPad?加载 HTML5 代码) - 不会解决问题了吗? 是的,技术部分很简单。问题是应用商店目前将它们视为两个完全不同的应用,将它们组合成一个通用应用意味着丢失一个现有的应用 ID。 没关系;目前只有 iPhone 有 IAP。它将在“合并”到通用应用程序后添加到 iPad。谢谢。

以上是关于你可以捆绑一个 Objective-C iPhone 应用程序和一个 HTML5 (PhoneGap) iPad 应用程序来制作一个通用应用程序吗?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Objective-C 在 iPhone 上禁用 WIFI

iPhone 上的 ocunit 测试

使用 Objective-C 进行 USB 编程

如何在 iPhone 应用程序中本地化捆绑显示名称?

由于捆绑包 ID,iPhone 应用程序更新无法验证

Objective-c用iphone 4s插入数据