#facebook-javascript-sdk #facebook-sharer #mobile-chrome #fb.ui
Вопрос:
Внимание: Эта проблема возникает только в мобильном браузере Chrome. Воспроизводится на Samsung Note9 iPhone 11.
Мы заметили это ~1 месяц назад:
FB.ui() диалоговое окно общего доступа (https://developers.facebook.com/docs/sharing/reference/share-dialog) открывает новую вкладку и немедленно запускает функцию обратного вызова, не дожидаясь ввода данных пользователем. Как только пользователь нажмет «опубликовать» на вкладке диалога, он попытается перенаправить на URL родительской вкладки «#bc=» вместо закрытия и возврата управления вызывающему абоненту. В итоге открываются 2 вкладки.
Другие мобильные браузеры, включая все большие экраны / Samsung Internet / Firefox mobile / Safari mobile, будут продолжать вести себя нормально, например: Вызывающий абонент открывает диалоговое окно на новой вкладке / после того, как пользователи нажимают «Опубликовать», диалоговое окно закрывается / управление возвращается вызывающему абоненту / вызывающий абонент выполняет обратный вызов.
Что пошло не так с мобильным chrome?
Вот соответствующий код:
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '11111111111111111',
autoLogAppEvents : true,
//xfbml : true,
version : 'v12.0'
});
};
</script>
<script>
document.getElementById('shareBtn2').onclick = function () { FbShare(); }
function FbShare () {
FB.ui({
method: 'share',
display: 'popup',
href: 'https://stackoverflow.com'
}, function (response) {
alert (navigator.userAgent);
if (response) {
alert('Posted');
}
else {
alert('Not Posted');
}
});
}
</script>