Диалоговое окно «Поделиться через Facebook» не работает должным образом на устройствах MI

Код ShareLinkContent

ShareLinkContent content = new ShareLinkContent.Builder()
                        .setContentUrl(Uri.parse(shareUrl))
                        .setContentTitle(shareTitle)
                        .build();

Поделитесь кодами диалогов, которые я попробовал

а. Использование диалогового объекта «Поделиться»

ShareDialog dialog = new ShareDialog(this);
dialog.show(content, ShareDialog.Mode.AUTOMATIC); //tried other 4 modes too

б. Использование статического доступа

ShareDialog.show(this, content);

Теперь проблема в том, что он отлично работает на всех обычных телефонах, таких как Motorola, Samsung, Pixel, Lenovo.

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

Должен ли я делать что-то особенное для обработки диалогов Facebook на устройствах MI?

Существует возможность создания пользовательского диалогового окна, но я хочу оставить его последним.

Изменить

То же самое происходит и с кнопкой Facebook Like.

Вот код кнопки «Мне нравится» в Facebook.

facebookLikeView.setObjectIdAndType("https://www.facebook.com/StartupScribble/", LikeView.ObjectType.PAGE);

Этот код также отлично работает на большинстве устройств, кроме устройств Redmi.


person Mohammed Atif    schedule 25.02.2017    source источник
comment
Проверьте данные вашей ссылки на Facebook. В основном это приводит к исчезновению диалогового окна «Поделиться в Facebook».   -  person Rahul Shukla    schedule 06.03.2017


Ответы (2)


У меня была такая же проблема при разработке приложения. Моя проблема заключалась в том, что приложение Facebook все еще находилось в режиме разработчика. Учетная запись Facebook, под которой выполнен вход на устройстве, не была добавлена ​​в приложение Facebook в качестве администратора, разработчика или тестировщика.

У учетной записи не было разрешения на доступ к приложению, и диалоговое окно совместного доступа было закрыто почти сразу после появления. Это было решено, когда я вошел в систему с правильной учетной записью Facebook.

При тестировании приложений переводите их в режим разработки. Это полностью скрывает ваше приложение от всех пользователей, которым вы не разрешили просматривать приложение на панели приложений для ролей, описанных ниже. Обратите внимание, что когда ваше приложение находится в режиме разработки, вы не можете вызывать какие-либо вызовы API от имени пользователей, которые не могут видеть ваше приложение.

Приведенный выше текст взят из документации facebook, где они объясняют больше о ролях.

person Rockney    schedule 04.03.2017
comment
Ух ты! Это было странно. Так совпало, что все мои тестовые устройства имели мою учетную запись FB, и все отзывы, которые я получил от своих друзей, имели устройство MI. Поэтому я даже не мог подумать об этом разработчике и критериях производства. Я серьезно считаю, что документы, в которых руководство FB по интеграции этих кнопок, имеют ссылку на документы, в которых упоминаются утверждения и публикация. Спасибо за помощь. - person Mohammed Atif; 07.03.2017

Другая причина связана с ошибкой в ​​собственном приложении Facebook для Android в версии 179.0.0.44.83, в этой версии ShareDialog не будет работать из-за внутренней ошибки в собственном приложении Facebook.

person Khalid Taha    schedule 10.07.2018
comment
я также столкнулся с той же проблемой. есть ли решение? @Аттила Найерс - person A2N; 12.07.2018
comment
@ A2N решение одно из двух: либо вы заставляете диалог быть в сети, либо facebook исправляет эту ошибку и выпускает новую версию. - person Khalid Taha; 15.07.2018
comment
@KhalidTaha Да. Оба произошли. FB исправил эту ошибку в v180, и я добавил прослушиватель, чтобы получить событие ошибки и открыть веб-сайт. Спасибо. - person A2N; 16.07.2018