Xamarin Forms открывает другое приложение для iOS

В моем приложении Xamarin Forms я хочу открыть другое приложение, нажав кнопку. Пример с приложением facebook, но он должен работать и с другими приложениями. Я много читал об этом здесь и здесь. На основе двух решений/ссылок я создал класс в своем проекте iOS:

[assembly: Xamarin.Forms.Dependency(typeof(OpenAppiOS))]
namespace FieldServicePortable.iOS.Common
{
    public class OpenAppiOS : IOpenApp
    {
        public OpenAppiOS() { }

        public void OpenExternalApp()
        {
            var nsurl = "facebook://";
            var request = new NSUrl(nsurl);

            try
            {
                var isOpened = UIApplication.SharedApplication.OpenUrl(request);   //Open App
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
}

Я также расширил Info.plist этими строками

<key>LSApplicationQueriesSchemes</key>
<array>
   <string>facebook</string>
</array>

Я не хочу беспокоить вас частью кода в общих проектах, потому что эта часть работает.

После нажатия кнопки в приложении код будет выполнен, но ничего не произойдет. Даже исключение не выбрасывается. Значение переменной isOpened равно false.

Итак, мои вопросы:

  1. Конечно, я что-то упускаю в своем коде?
  2. Есть ли требования к приложению, которое должно быть открытым?
  3. Нужна ли какая-то настройка в iOS?

person Torben    schedule 18.07.2018    source источник
comment
К вашему сведению, это называется глубокая ссылка   -  person LeRoy    schedule 19.07.2018


Ответы (1)


Попробуйте использовать Device.OpenUri(new Uri("fb://"));

Также вы можете обратиться к xamarin как открыть приложение facebook и twitter из моего приложения ios с помощью кнопки

person Vishal D Aher    schedule 18.07.2018
comment
Спасибо за повтор. Я протестировал его, и он отлично работает. Но где вы нашли этот URI, ведь я также хочу открывать другие приложения, например Anveo Mobile? - person Torben; 18.07.2018
comment
Итак, наконец, я загрузил приложение с iMazing, разархивировал .ipa и посмотрел в info.plist для CFBundleURLSchemes. Это имя я искал. :) - person Torben; 19.07.2018