iOS中类似于在Android启动Activity的功能

7
我刚刚完成了一个Android Activity,并允许其他Activity调用它以获得一些结果(它不是作为独立的Activity而设计的)。现在我正在开发等效的iOS应用,但找不到任何资源来启用类似的功能。

情况如下:我正在制作的工具旨在供其他应用程序使用,而不是作为独立应用程序。问题是,需要呈现给用户的GUI相当复杂,因此我想能够向开发人员提供一个“一站式”包,他们可以简单地启动并从中获取结果。 在Android中很容易做到这一点。我只需编写一个Activity并指示开发人员启动该Activity以获得结果。 我四处寻找,却找不到iOS开发人员可以实现相同功能的类似功能。最好的方法是什么?


我认为我在寻找资源时遇到的部分问题是我不完全确定我正在制作的东西叫什么。库?扩展?插件?我认为库没有GUI,而且似乎扩展和插件是为可扩展的应用程序(即,用户可以安装扩展/插件的应用)而设计的。

3个回答

2

您的API可以是一个调用,弹出模态视图。可以指定目标和选择器来接收答案。将其提供给其他开发人员意味着将其打包成“框架”。我不确定是否可以包含资源。


1

实际上并没有完全等价的方法。最接近的方法是让第二个应用程序调用UIApplication的openURL,使用自定义方案来监听您的应用程序,然后当您的应用程序完成时,它将使用被调用应用程序监听的自定义方案执行相同的操作。

在实践中,iOS应用程序通常会将整个活动等效部分作为某种库包含在内,高层次上采用UIViewController子类的形式呈现模态,并在完成后调用委托方法或完成选择器。


我稍微研究了一下,似乎很容易。如果我使用openURL,这将启动我的“应用程序”,而不提示用户任何类似于“在哪里打开此链接:...”的内容?对于用户不知道他们正在使用已集成我的软件的应用程序来说,这是相当重要的(也就是说,我希望他们不必安装我的应用程序来提供功能)。我想我应该提到这是我的第一个iOS应用程序。 - Tim

0

iPhone开发与Android开发的设计不同,因此您可能需要重新考虑您想要做什么。

最有可能的是,您希望只在每个程序中包含代码,以便您可以进行测试,但这可能不是最佳解决方案。

但是,如果不了解更多关于您尝试做什么的详细信息,很难提出更好的解决方案建议。

例如,您可能会发现LocalNotifications是一种解决方案(http://useyourloaf.com/blog/2010/7/31/adding-local-notifications-with-ios-4.html),但这取决于您的需求。

我发现使用本地通知来调用REST服务,然后处理它并决定是否需要通知用户,作为替代Android应用程序中我使用的Intents非常有帮助。


我在描述我的问题时可能不够具体。更确切地说,我正在开发一段代码,可以将其视为特殊类型的条形码扫描器。作为消费者扫描这些条形码没有用处,但现有的开发人员可以将此技术集成到他们的应用程序中,以向应用程序提供用户想要提供的信息。然而,UI涉及的内容不仅仅是分析从相机拍摄的图像(加速度计一直发挥作用)。我考虑子类化UIViewController,但我觉得这可能是幼稚的。 - Tim
续:我想让开发人员能够非常容易地将这项技术/UI集成到他们现有的应用程序中,而不必将大量代码扔来扔去或者搞乱他们的nib文件(或者至少将这些操作最小化)。谢谢您的回复。 - Tim
类似的功能肯定是可能的 - 可以看看 TextExpander 应用程序,了解类似的东西。话虽如此,我不知道他们是如何实现他们的功能的。 - Tad Donaghe
@Terry Donaghe - 看起来你只需要包含这个库,根据这个链接:http://www.freshblocks.com/tutorials/how-to-add-textexpander-touch-sdk-to-iphone-apps/ - James Black

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接