2012-06-03 9 views
0

example.com/pagetab에서 실행될 때 invite 버튼 (일명 FB.ui -> apprequests)이있는 페이지 탭 응용 프로그램이 있습니다 (즉, FB.ui 친구 선택기 창 등)하지만 내 애플 리케이션의 pagetab을 가리켜 페이스 북에서 iframe으로로드하면 아무 일도 일어나지 않습니다. 처음에는 어떤 문서가 준비되었는지 알지 못해서 jquery로 연결되지 않은 버튼에 문제가 있다고 생각했지만 onclick을 사용하고 Chrome 콘솔 (iframe의 범위에 있음)에서 명령을 입력하는 것으로 전환했지만 아무것도 표시하지 않았습니다. 이런 일이 벌레일까요, 아니면 제가 빠진 것이 있습니까?FB.ui 페이지 탭에서 apprequest 작동하지 않습니다

최소 코드 : 페이지에 다음

window.fbAsyncInit = function() { 
    FB.init({ 
    appId  : '123456789', // App ID 
    channelUrl : '//fbjscache.php', // Channel File 
    status  : true, // check login status 
    cookie  : true, // enable cookies to allow the server to access the session 
    xfbml  : true // parse XFBML 
    }); }; 
(function(d){ 
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    ref.parentNode.insertBefore(js, ref); 
}(document)); 
function sendInvite() { 
    console.log("Inviting..."); 
    FB.ui({method: 'apprequests', 
    title: 'Check out this great app!', 
    message: 'Join the fun!', 
    }, inviteCallback); 
} 

<a href="javascript:void(null)" class="invite" onclick="sendInvite()"><div class="facebookButton">Invite</div></a> 

이 코드 작동 정확히 페이지가 바로로드와 아무 때하지 않습니다 때 (귀여운 친구 선택기 대화 상자를 팝업) 예상대로 iframe에서로드됩니다. 이 버그 또는 일부 숨겨진 된 설정/JS 잡동사니가 내가 잡을 수있어?

function sendInvite() { 
    FB.ui({method: 'apprequests', 
     title: 'Check out this great app!', 
     message: 'Join the fun!', 
     display: 'popup' 
    }, inviteCallback); 
} 

이 동작에 대해 명시 적입니다 : 관련 질문을 발견 한 후

답변

5

(Send dialog doesn't work in page tab는) 나는 문제가 수동으로 옵션의 매개 변수 display : 'popup'을 포함해야하므로 작업 코드가 필요하다는 것을 깨달았다 무엇이 the docs일까요?

플랫폼 대화 상자는 모두 웹 및 모바일 웹에서 다양한 디스플레이 컨텍스트로 원활하게 실행되도록 제작되었습니다. JS, iOS 또는 Android SDK를 사용하여 Dialog를 호출하는 경우 사용자가 사용하는 플랫폼과 장치에 따라 디스플레이 모드가 자동으로 선택됩니다.

"페이지 탭"과 "데스크톱 브라우저"의 비밀 조합에 대해 자동 선택이 "경고없이 표시되거나 오류 메시지가 표시되지 않는"경우가 아니면

기록을 위해 적절한 캔버스 앱에는 이러한 제한이 없습니다. 전체 응용 프로그램에서 line-for-line 같은 코드를 사용하면 모든 것이 잘 작동합니다.

관련 문제