2012-09-19 19 views
5

私はFacebookの友人を示す1つのアプリケーションを作成しています。まず、ユーザーがログインボタンをクリックする必要があります。その後、ログインIDとパスワードを入力した後、簡単なポップアップ画面が表示され、友人リストが表示されます。
Firefox、Chrome、IEでは問題なく動作しますが、SafariやiPhoneではポップアップが開かれません。
誰かが私にchannelUrlにドメイン名とチャンネル名を追加するよう勧めます。私はchannel.htmlを1つ作成し、参照を追加しますが、それは私を助けませんでした。
ロットを検索しましたが、役に立たなかったSafari/iPhoneでログインできません

ここに私のコードです。
Custom.js

function getUser() 
{ 
FB.init({ 
    appId  : '289403314507596', // App ID 
    channelUrl : 'http://bc2-236-161.compute-1.amazonaws.com/html/channel.html', // 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)); 

//check current user login status 
FB.getLoginStatus(function(response) { 
    if (response.status === 'connected') { 
     window.location="facebook_friend.html" 
     loadFriends(); 
    } else { 
     //user is not connected. 
     FB.login(function(response) { 
      if (response.authResponse) { 
       window.location="facebook_friend.html" 
       loadFriends(); 
      } else { 
       alert('User cancelled login or did not fully authorize.'); 
      } 
     }); 
    } 
}); 
} 
//start from here 
$(document).ready(function(){ 
$('.load-button').click(function(){ 
    getUser(); 
}); 
}); 

channel.html

<script src="//connect.facebook.net/en_US/all.js"></script>// i add this line in channel.html 

私は私の完全なを無駄にした後...このファイルに

<div id="fb-root"></div> 
    <script src="http://connect.facebook.net/en_US/all.js"></script> 
    <img src="includes/fb-btn1.png" class="load-button" style=" 
    width: 290px; 
    Height: 40px; 
    margin-top: 5px;"/> 

答えて

4

[OK]をcustom.jsの参照を追加
refer_friend.html私は答えを得た。 Javascript_Facebook Sdkを使用して、ログインボタンをクリックすると、ポップアップウィンドウが開きます。そして、SafariやiPhone(私の)では、私はブロックポップアップオプションを有効にします。
したがって、私はFacebookログインウィンドウを見ることができません。ポップアップウィンドウを許可する必要があります。
あなたは

Safari-disable Block pop-up windows 

または

safari-preference-then disable checkbox of pop-up window's  

をクリックすることでポップアップを許可することができます。また、キーボードショートカットを使用することができます。

shift-[command key]-K. 

歓声が。

+4

あなたのコードの主な問題は、 'FB.login'を自動的に呼び出すことです。ポップアップは現在のブラウザでブロックされる可能性が非常に高いです。一般的な推奨事項は、このメソッドを明示的なユーザー対話でのみ呼び出すことです。リンク/ボタンをクリックしてログインをトリガーします。 – CBroe

+0

この情報に感謝します。私はこれを試してみます。 –

+0

Safariは非常に機密扱いのようです。 Clickハンドラの中の上記のコードでFB.getLoginStatusを呼び出すと同じことが起こります。 Safari Version 6.0.5(7536.30.1)でこれを体験しています。私はそのFB.loginは、ユーザーのクリックイベントによってトリガーされた/呼び出されたとしても、関数内で呼び出されるためだと思う... – Hans

関連する問題