Возможно ли в ios проксировать запросы из одного приложения на внешний ресурс?

Возможно ли в iOS проксировать запросы из одного приложения на внешний ресурс?

Актеры в этом сценарии:

  1. Внешний ресурс (Ресурс-1)
  2. Прокси-приложение (большую часть времени работает в фоновом режиме, но имеет графический интерфейс для некоторого взаимодействия)
  3. Клиентское приложение

Предварительные условия:

  • Client-app-1 и Proxy-app установлены на одном мобильном устройстве.
  • Мобильное устройство и внешний ресурс «Ресурс-1» являются подключен к той же локальной сети WLAN.

Теперь Client-app-1 хочет вызвать Proxy-app (каким-то образом), чтобы выполнить действие или получить информацию. Proxy-app получает запрос и, если он разумный, вызывает Resource-1 для удовлетворения запроса.

Возможно ли это даже под iOS? Можно ли это сделать без вывода Proxy-app на передний план? И какие основные механизмы будут использоваться для выполнения этого взаимодействия между приложениями?

Прошу прощения за абстрактный характер вопроса.

Мне любопытно, почему бы вам не сделать это в одном приложении. Что можно получить от такого подхода?

ryantxr 31.10.2018 19:04

@ryantxr Забыл упомянуть, что может быть не только клиент-приложение. Каждое клиентское приложение может разрабатываться и продаваться отдельно и использовать разные части внешнего ресурса.

Psybot 01.11.2018 08:08
0
2
37
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Да, но это не так просто. Вам нужен инструмент NetworkExtension. В частности, вам нужен Клиент протокола сетевого туннелирования. Это может быть связано с конкретным приложением (см. appRules).

Спасибо за ответ. Однако я не знаю, как применить эти инструменты к проблеме. Не могли бы вы немного расшириться, пожалуйста? Вы имеете в виду, что прокси-приложение будет реализовывать NetworkExtension? И связь между клиентским приложением-1 и прокси-приложением происходит через расширение? Требуется ли VPN для использования клиента протокола туннелирования сети? Извините, если я полностью отключен.

Psybot 01.11.2018 11:40

Это очень большая тема, и она слишком велика, чтобы ее можно было охватить в SO-ответе IMO. Но да, прокси-приложение будет реализовывать сетевое расширение (как расширение приложения; само прокси-приложение будет пользовательским интерфейсом, который вы описываете. То, что вы создаете, является эквивалентом VPN (имеете ли вы в виду, что это VPN или нет, вот как об этом думать). Начните здесь: developer.apple.com/videos/play/wwdc2017/707 и, хотя он старше, этот также может дать некоторое представление: developer.apple.com/videos/play/wwdc2015/717. Он не очень хорошо документирован; вам придется немного изучить.

Rob Napier 01.11.2018 14:06

Другие вопросы по теме