facebook - FB.ui 分享如何在页面中打开而不是弹出窗口
问题描述
尝试用 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 弹出窗口阻塞问题?
提前致谢
解决方案
主要问题是您试图在 AJAX 请求的回调函数中打开对话框。您必须FB.ui
直接在鼠标交互时使用,否则会被浏览器阻止。
如果这不起作用,您可以改用 sharer.php:https ://developers.facebook.com/docs/workplace/sharing/share-dialog/?locale=de_DE#sharedialogvialink
推荐阅读
- couchdb - 524 响应没有 CORS 标头
- docker - 绕过 --password-stdin 警告(docker)
- java - 数组| 使用数组除法查找重复整数?
- scheduled-tasks - 切割具有定义长度的管子(具有恒定数量的项目类型的箱包装)
- yacc - 使 lex/yaac 脚本多线程
- ios - ARkit - SceneKit:在检测到的平面上动态放置 3D 模型
- python - 在 nltk 的 text6 中,第一个字母为大写,所有其他字母为小写
- ruby - 强制 WSO2 每次都用 google 登录
- php - Symfony 3.4 - 错误配置的服务
- django - 如果创建对象而不保存,“related_name”是否有效?