FB.ui поделитесь, как открыть страницу вместо всплывающего окна - PullRequest
0 голосов
/ 09 октября 2019

Попытка настроить механизм обмена с FB.ui. Проблема в том, что диалоговое окно «Поделиться» открывает всплывающее окно, а не открывается на той же странице. Причина, по которой я пытаюсь избежать всплывающего окна, заключается в том, что safari не отображает всплывающее окно на мобильном телефоне.

<script>
        $(document).ready(function()
        {
            $.ajax(
                {
                    url: '//connect.facebook.net/en_US/sdk.js',
                    dataType: 'script',
                    cache: true,
                    success:function(script, textStatus, jqXHR)
                    {
                        FB.init({
                            appId            : 'someID',
                            autoLogAppEvents : true,
                            xfbml            : true,
                            version          : 'v3.0'
                        });

                        share();
                    }
                });
        });

        function share() {


            FB.ui(
                {
                    method: 'share',
                    href: 'https://example.com',
                    quote: 'Some description',
                    title : 'Title',
                    hashtag: null,
                    display: 'iframe'
                },
                response => {
                    window.parent.postMessage(
                        {
                            earningRule: 'fb_share',
                            action: 'shared',
                            response: response
                        }
                    );
                }
            )
        }
    </script>

Есть ли способ избежать всплывающего окна или решить проблему блокировки всплывающих окон в safari?

Заранее спасибо

1 Ответ

0 голосов
/ 09 октября 2019

Основная проблема заключается в том, что вы пытаетесь открыть диалоговое окно в функции обратного вызова запроса AJAX. Вы должны использовать FB.ui непосредственно при взаимодействии с мышью, иначе браузер заблокирует его.

Если это не сработает, вместо этого вы можете использовать sharer.php: https://developers.facebook.com/docs/workplace/sharing/share-dialog/?locale=de_DE#sharedialogvialink

...