如何检测Facebook Javascript SDK'的移动iframe

How to detect a cancel out of Facebook Javascript SDK's mobile iframe?

本文关键字:iframe 移动 SDK Javascript 何检测 检测 Facebook      更新时间:2023-09-26

使用带有新"mobile_iframe"参数的Facebook Javascript SDK 2.6版本来共享内容(我认为这是一个新参数,在2.6发布之前我没有见过它,但它没有出现在FB的更改日志中)。该参数按照广告中的方式工作,除非用户在没有共享的情况下关闭对话框(即取消移动iframe弹出窗口),否则无法通过响应数据来辨别他们是这样做的。

JS:

myJsClass.shareDetails = {
  method: 'share',
  href: shareURL
};
if (true === [on a mobile device]) {
  myJsClass.shareDetails['mobile_iframe'] = true;
}
console.info('Share Data: ' + myJsClass.shareDetails )
FB.getLoginStatus( function( response ) {
  if ( response.authResponse )
  {
    FB.ui( myJsClass.shareDetails,
    function( response )
    {
      console.info('Response: 'response);
...
  • 在移动设备上(使用移动safari):共享数据:{method:"Share",href="https://[我的url在这里]",mobile_iframe:true,版本:"v2.6"}

--在有效份额之后:响应:[]

--取消后:响应:[]

  • 在桌面浏览器上(使用chrome):

--在有效份额之后:响应:[]

--取消后:响应:{error_code:4201,error_message:"用户取消了对话框流"}

是否没有办法确定mobile_iframe中的取消?供参考:https://developers.facebook.com/docs/sharing/reference/share-dialog#mobile-web共享对话框

这被证明是一个有效的错误,Facebook证实了这一点:https://developers.facebook.com/bugs/257808294557601

希望他们能尽快堵住漏洞。