Xamarin.Forms: Facebook и диплинкинг

Я работаю над приложением 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...


person Gold.strike    schedule 20.09.2020    source источник