1

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

在此处输入图像描述

,但他们构建了自己的邮件、日历应用程序等。是否可以将这些应用程序包含在另一个应用程序中,但它们本身就是单独的应用程序?我对 IOS 有点陌生,我已经查看了自定义 url 方案 - 但是一旦调用链接的应用程序,控制应用程序就会失去控制。

我看过从另一个(iPhone)中启动一个应用程序,它建议我提到的 url 方案,但这并不是我真正想要的。我还可以考虑,如果没有办法实现原生应用程序,就是将应用程序安装在 ipad 上,然后从主应用程序链接到它们。但是有没有一种将应用程序放入另一个应用程序的本地方法。

4

3 回答 3

1

现有应用程序是如何做到的

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

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

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

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

启动 URL

正如@BlackRider 所说,您可以使用启动 URL 启动其他应用程序。但是,您不能按照您的要求禁止从您的启动器外部启动其他应用程序。用户仍然可以从 Springboard 启动其他应用程序,并且其他应用程序也可以使用启动 URL。

应用包装

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

于 2013-10-05T02:13:43.273 回答
1

@BergQuester说你不能将一个应用程序嵌入到 iOS 中的另一个独立应用程序中是正确的这被 iOS 安全模型所阻止,其中应用程序对其他应用程序以及它们自己的沙箱之外的任何内容的了解极为有限。

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

使用这种方法的应用程序的一个很好的例子是Launch Center Pro

于 2013-10-05T04:45:15.010 回答
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 应用程序中更常用,因此有更多示例代码可用。

于 2013-10-05T04:57:19.013 回答