FB.ui共享如何在页面中打开而不是弹出窗口

问题描述 投票:0回答:1

[尝试与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弹出窗口阻止问题?

提前感谢

facebook facebook-javascript-sdk share fb.ui
1个回答
0
投票

主要问题是您试图在AJAX请求的回调函数中打开对话框。您必须直接在鼠标交互上使用FB.ui,否则它将被浏览器阻止。

如果不起作用,您可以改用sharer.php:https://developers.facebook.com/docs/workplace/sharing/share-dialog/?locale=de_DE#sharedialogvialink

© www.soinside.com 2019 - 2024. All rights reserved.