Перейти к содержанию
Fire Monkey от А до Я
  • 0

Pax Beach

Вопрос

Знающие люди, подскажите пожалуйста, как в iOS одно приложение может запустить другое приложение, как передать картинку в другое приложение, готовое его принять, как при запуске обрабатывать в своем приложении параметры, переданные из другого приложения?

В Android для этого есть механизм Intent Filter, а как это устроено в iOS, и как с этим работать в RAD Studio?

 

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
24 минуты назад, Brovin Yaroslav сказал:

Эта официальная статья вам, однозначно, поможет: Inter-App Communication

 

Ярослав, с Inter-App Communication можно работать средствами FireMonkey?

И ловит ли TfgApplicationEvents события этого механизма?

Ссылка на комментарий
  • 0
  • Администраторы
  • По идеи можно. Просто используйте нативное апи.
  • TfgApplicationEvent здесь не поможет. Нужно перехватить сообщение с урлом TApplicationEventMessage
Ссылка на комментарий
  • 0

Один из вариантов открытия одного приложения из другого - это использование URL schemes (Ярослав давал выше ссылку).  

Из приложение А: 

//отправка
uses
	Macapi.Helpers,
	FMX.Helpers.iOS;

    //делаем намерение открыть URL (по сути тоже самое Intent в Android)
    SharedApplication.openURL(StrToNSUrl(Url));

Приложение Б (подробнее, хотя немного устарело):

    //подписываемся на события
    if TPlatformServices.Current.SupportsPlatformService(IFMXApplicationEventService, IInterface(aFMXApplicationEventService)) then
      aFMXApplicationEventService.SetApplicationEventHandler(HandleAppEvent);

//обработчик
function HandleAppEvent(AAppEvent: TApplicationEvent;
  AContext: TObject): Boolean;
var
    lURL : string;
begin
  case AAppEvent of
    TApplicationEvent.OpenURL :
    begin
        lURL := (AContext as TiOSOpenApplicationContext).URL;
        //реализуем логику
    end;

Как передать файлы я вижу несколько вариантов:

- использовать буфер обмена (класс UIPasteboard - думаю не сложно его использовать в FMX, я им пользовался только в Xamarin, на FMX возможно (нужно проверить) можно использовать FMX.Platform.IFMXClipboardService). Перед открытием URL в "А" - сохраняем картинку/файл в буфер обмена, в "Б" при открытии считываем.

- передавать в URL путь к файлу (это возможно только, если и "А" и "Б" являются приложением одной группы). пример с Object-C.

Ссылка на комментарий
  • 0
1 час назад, Fedor K сказал:

Как передать файлы я вижу несколько вариантов:

Спасибо, полезные примеры.

А как реализовать функцию «поделиться». Например, из своего приложения хочу поделиться фотографией в вотцап?

 

Ссылка на комментарий
  • 0
2 минуты назад, Pax Beach сказал:

Спасибо, полезные примеры.

А как реализовать функцию «поделиться». Например, из своего приложения хочу поделиться фотографией в вотцап?

 

1. TMS iCL

2. DPF- смотрите в сторону TDPFQLPreviewController

3. Ручками, что-то вроде такого (документация apple):

var
  controller : UIDocumentInteractionController;
  URL: NSURL;
  {$ENDIF}
  path : string;
  temp : Boolean;
begin
    path := ExtractFilePath(ParamStr(0)) + '/Sample.pdf';
  {$IFDEF IOS}
  URL := TNSUrl.Wrap(TNSUrl.OCClass.fileURLWithPath(StrToNSStr(path)));
  controller := TUIDocumentInteractionController.Wrap(
  TUIDocumentInteractionController.OCClass.interactionControllerWithURL(URL));
  TNSUrl.Wrap(TNSUrl.OCClass.fileURLWithPath(StrToNSStr(path)));

  temp := controller.presentOpenInMenuFromRect(
      WindowHandleToPlatform(self.Handle).View.frame,
      WindowHandleToPlatform(self.Handle).View,true);
  {$ENDIF}
end;

 

Ссылка на комментарий
  • 0
В 15.09.2016 в 16:15, Brovin Yaroslav сказал:

Эта официальная статья вам, однозначно, поможет: Inter-App Communication

 

не хотелось бы новую тему поднимать, но никак не могу разобраться с намерением позвонить в IOS. Что то в статье ничего не накопал... и инфы мало по этой теме... в общем оч нужна помощь

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...