【问题标题】:Possible to present UIViewController from another app?可以从另一个应用程序呈现 UIViewController 吗?
【发布时间】:2017-02-27 22:32:09
【问题描述】:

这似乎过于雄心勃勃,但我正在探索在一个单独的应用程序中呈现视图控制器的能力(两者均由我编写)。我不是在谈论重用一个类,我指的是从字面上呈现来自另一个进程的控制器而不是最前面的一个。

我相信这属于 macOS 上的 XPC 领域,以及共享扩展目前在 iOS 上的工作方式。不幸的是,我不是在寻找共享控制器。

这是否可能(如果必须的话,即使使用私有 API)?

【问题讨论】:

  • 您希望重用的视图控制器由其他进程控制还是由呈现它的应用程序控制?
  • @ReinSpijkerman 它必须由其他进程控制。

标签: ios xpc


【解决方案1】:

因为这两个应用程序都被 iOS 沙盒化,所以它们中的任何一个都无法定位和加载(来自)另一个应用程序。扩展是 Apple 提供的让其他应用执行某些操作的唯一方法。

使用私有 API 不会解除沙盒限制。使用越狱设备,可以找到其他应用程序。在这种情况下,-[NSBundle loadClassNamed:] 将允许您从已加载的(应用程序)包中获取和实例化一个类,但它仍将由实例化它的进程控制。

所以,不,对于将分发给您以外的其他用户的应用程序,您提出的要求实际上是不可能的。如果只是为了你自己,你也许可以在越狱设备上的进程之间进行大量创建、控制和通信工作。

【讨论】:

    【解决方案2】:

    如果您有自己的服务器,那么这是可能的。只需让 app1 向您的服务器发送触发器,然后您的服务器向您的 app2 发送推送通知。当用户点击通知时,它将打开您的 app2 视图控制器。

    【讨论】:

    • 我想过类似的东西,但利用了 URL 方案。
    • 那肯定行得通。祝你的应用程序好运。 :D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多