Я работаю над приложением Xamarin.Forms, которое будет отображать новости, поступающие со страницы моего клиента в Facebook. Приложение будет отображать 2 вида элементов: канал/сообщения (поступающие из client_page/feed или client_page/posts) или события (от client_page/events)
Я могу получить ожидаемую информацию для каждого типа элементов и открыть соответствующий URL-адрес в браузере с классом Browser
из Xamarin.Essentials
.
Например, для поста мой код выглядит так:
await Xamarin.Essentials.Browser.OpenAsync(selectedNews.Url);
Я пытаюсь внедрить глубокие ссылки, чтобы улучшить взаимодействие с пользователем. Для этого я добавил новую запись (LSApplicationQueriesSchemes
) в файл Info.plist
на iOS. Затем я использую класс Launcher
из Xamarin.Essentials
, но у меня возникают некоторые проблемы.
С помощью этого кода я могу открыть страницу клиента в приложении Facebook на Android, но не могу открыть на iOS. В iOS у меня есть только приложение Facebook, которое открыто на моей странице ленты по умолчанию:
await Xamarin.Essentials.Launcher.OpenAsync("fb://page/115592608462989");
С помощью этого кода я могу открыть событие страницы клиента в приложении Facebook на Android, но не на iOS. В iOS у меня есть только приложение Facebook, которое открыто на моей странице ленты по умолчанию:
await Xamarin.Essentials.Launcher.OpenAsync("fb://event/2720519278225723");
И я не нашел способа открыть публикацию/ленту клиента с диплинкингом: на обоих устройствах я получаю только приложение Facebook, открытое на моя страница канала по умолчанию:
await Xamarin.Essentials.Launcher.OpenAsync("fb://115592608462989_3626060134082868");
await Xamarin.Essentials.Launcher.OpenAsync("fb://page/115592608462989/posts/3626060134082868");
=› Я что-то забыл, чтобы глубинные ссылки работали на iOS так же, как на Android? Есть ли способ открыть определенный пост на странице моего клиента?
Обновить
Наконец-то я нашел объяснение для iOS: нам нужно использовать fb://profile/
вместо fb://page/
, это работает на Android.
Кроме того, я могу получить конкретную публикацию на iOS, используя fb://profile/page_id/posts?id=post_id
.
Однако я не нашел, как это сделать на Android, так как fb://page/page_id/posts?id=post_id
не работает. Единственный способ, который я нашел для достижения этого на Android, был предоставлен здесь и состоял в использовании опции facewebmodal и передаче полный URL сообщения в качестве параметра: `fb://facewebmodal/f?href=https://www.facebook.com/clientpage/posts/postid``
=› Я не уверен, что это решение будет работать везде, поэтому я все еще ищу способ получить публикацию с опцией fb://page
на Android...