2014-03-04 49 views
9

有許多類似的問題,所以這個問題的範圍很小,而不是重複的。透明地在運行在同一個iPhone上的應用程序之間進行通信

前提

  • 兩部iPhone應用程式(單獨的包ID),你必須在每一個
  • 用戶的源代碼完全控制安裝了同一部手機上都應用
  • 沒有網絡連接到其他主機
  • 沒有越獄
  • 假設該應用程序有適當的能力,以在後臺運行無限期

目標

  • 的應用程序之間的通信雙向
  • 最大限度地減少或消除用戶觀察到的證據表明,這種溝通正在進行,
  • 後臺應用程序將有新信息需要前臺應用程序,因此需要推送或輪詢機制
  • Idea lly可用於生產,因此不使用私有API

所以問題是「可以這樣做嗎?

以下是關於「已嘗試」的一些註釋 - 已考慮的不同方法。

很好理解攻擊向量

  • 使用另一臺主機 - 合理的,但不包括對問題的定義,因爲延遲
  • 自定義URL方案 - 一個不錯的方法,但並不理想,因爲動畫和上下文切換,特別是如果輪詢
  • 東西Settings.app下 - >隱私(如聯繫人) - 將工作,但寧可不問權限

個的東西,可能不會工作

  • 「打開方式...」 API
  • 共享文件系統以某種方式
  • 藍牙

可能的想法

蘋果已仔細避免暴露此功能。有沒有人想出辦法呢?

+0

你有沒有找到任何可行的方法? – Crashalot

+0

@Crashalot不是真的 – funroll

+0

所以localhost的方法不起作用? – Crashalot

回答

2

還有一個想法:在iPhone上的一個應用程序中啓動本地Web服務器,並將其用於應用程序之間的通信。

這裏是implementation of such server

這裏是usage example

我還沒有嘗試過我自己這一解決方案,但看到用這個想法進行通信的應用程序。

此外,我相信蘋果有意不實施任何簡單的方式來溝通應用程序。現在,您可以讓應用成爲整個設備上唯一的一款應用,除了內存使用等少數例外情況外,只要這裏有一些簡單的應用通信方式,我們就會在更復雜的環境中找到自己的應用。作爲程序員,我們需要考慮更多的限制,規則和可能性。

但是我也希望有一些方法可以在應用程序之間進行通信,許多好的想法可以用這個工具來實現。

+0

感謝您的回覆。這就是我所說的localhost套接字 - 但具體指定HTTP有助於進一步豐富它。我想知道是否有人在真正的生產應用程序中這樣做(用於應用程序間通信。) – funroll

相關問題