Xamarin iOS отправляет команды / события в другие приложения - PullRequest
1 голос
/ 06 марта 2019

Технически возможно ли отправлять команды / события в другие приложения на iOS?Есть ли что-то вроде системной шины на iOS?В частности, я заинтересован в нажатии кнопки спуска приложения камеры, когда он открыт / работает, чтобы сделать снимок.Я думал, что, возможно, можно генерировать событие, которое отправляется всякий раз, когда пользователь нажимает, например, кнопки - / + на гарнитуре, что также приводит к отключению камеры.

ОБНОВЛЕНИЕ :

Я не пытаюсь создать собственное приложение для камеры.Я пытаюсь запустить приложение камеры из фоновой службы / демона.Итак, предположим, что приложение для встроенной камеры iOS работает.Может ли фоновая служба / демон отправлять команды / события в другое приложение?Или существует какое-то «волшебное» общесистемное событие, которое может вызвать срабатывание камеры?

ОБНОВЛЕНИЕ :

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

Любая подсказка приветствуется.

Ответы [ 2 ]

2 голосов
/ 06 марта 2019

Вы не можете открыть приложение «Камера» из своего собственного приложения. Однако, используя ответ @Neil, вы можете делать снимки внутри своего приложения. (без фактического использования приложения камеры iOS).

Вы можете открывать другие приложения, используя (пользовательские) схемы URL и Deep Linking. Вы также можете отправить параметры вместе с URL-адресом для запуска определенных действий в приложении, на которое вы ссылаетесь. Например:

twitter://user?screen_name=[id]

Подробнее об этой теме:

Глубокие ссылки Xamarin iOS

Глубокая связь с родной iOS

Очень жаль, iOS не предоставляет схему URL для приложения камеры по умолчанию.

2 голосов
/ 06 марта 2019

Помогает ли это?

В основном все сводится к добавлению натива Xam.Plugin.Media, а затем:

private async void CameraButton_Clicked(object sender, EventArgs e)
{
    var photo = await Plugin.Media.CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions() { });

    if (photo != null)
        PhotoImage.Source = ImageSource.FromStream(() => { return photo.GetStream(); });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...