将应用程序嵌入到IOS中的应用程序中

时间:2013-10-05 01:57:13

标签: ios ipad app-store

我正在尝试将应用嵌入到应用中。基本上我想要的东西类似于divide.com的应用程序:

enter image description here

,但他们建立自己的邮件,日历应用程序等。是否可以将这些应用程序放在另一个应用程序中,但它们本身就是个人应用程序?我是IOS的新手,我已经查找了自定义网址方案 - 但是一旦调用链接应用程序,控制应用程序就会失去控制权。

我看过Launch an app from within another (iPhone),它提出了我提到的网址方案,但这并不是我想要的。我还能想到的是,如果没有办法实现本机应用程序是在ipad上安装应用程序,然后从主应用程序链接到它们。但有没有一种本地方式将应用程序放入另一个应用程序。

3 个答案:

答案 0 :(得分:1)

现有应用程序如何做到

在幕后,作为示例引用的应用程序内的应用程序实际上是父应用程序中的独立模块。实际上,它们是集成到单个应用程序中的多个应用程序,一个可执行文件。

到目前为止,已经提出了几种方法。但每个人都有自己的问题。

在您的应用包中嵌入另一个应用

虽然技术上可行,但却无法在iOS上的另一个应用程序中嵌入其他应用程序,因为这是App Store指南和操作系统本身所禁止的。

启动网址

正如@BlackRider所说,您可以使用启动网址启动其他应用。但是,您无法禁止其他应用程序从您的启动器外部启动,如您所要求的那样。用户仍然可以从Springboard启动其他应用程序,其他应用程序也可以使用启动URL。

App wrap

我不得不承认,我对app包装的机制并不十分熟悉。但是,在我阅读它的工作原理时,需要企业IT的干预才能实现。虽然如果您打算将应用程序直接出售给公司,这可能会有效,但如果您打算将其在iTunes App Store中出售给普通民众,则无法使用。

答案 1 :(得分:1)

@ BergQuester 说你无法将一个应用程序嵌入到iOS中的另一个独立应用程序中。 iOS安全模型阻止了这种情况,其中应用程序对其他应用程序及其自己沙箱之外的任何内容的知识非常有限。

也就是说,有些应用可以通过应用启动网址巧妙地解决这个问题。这个Apple document描述了如何做到这一点。例如,您可以从您的应用程序启动Instagram(假设您的手机上安装了Instagram)。许多应用都有自己的网址方案,您可以使用这些方案从您自己的应用启动这些应用。在许多情况下,您还可以将一些数据传递给这些应用程序(例如,图像和Instagram的一些文本以创建新帖子)。

使用此方法的应用程序的一个很好的示例是Launch Center Pro

答案 2 :(得分:0)

正确的技术方法是使用NSBundle:https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSBundle_Class/Reference/Reference.html

捆绑包可以做很多事情,包括保存应用程序可以加载和执行的任意代码。基本上你将一些代码(可以做任何事情)编译成一个包,然后你将那个包粘在你的启动器中并由它启动。

但是,应用商店规则严格禁止您执行许多技术上可行的操作。您的应用可能会或可能不会被允许进入App Store。

因此,您需要研究指南,尤其是第2部分。还有其他应用程序可以执行您正在尝试执行的操作,因此显然可以完成 - 但您正在推动指南的优势。也许你的想法以前从未做过,因为这是不允许的。

最糟糕的是,指南可随时更改。明天可能不允许今天允许的内容。如果你打算从这个项目中赚钱......那么你真的在玩火。他们可能会在你的应用程序发布之前杀死你的应用程序,或者在你发布它之后的一周或六个月内,它们可能会改变主意并杀死它。

尝试查找NSBundle如何在OS X / Cocoa应用程序上运行的示例。它在iOS上完全相同,但在Mac应用程序中更常用,因此可以使用更多示例代码。