2012-09-19 14 views
5

Facebook arkadaşını gösterecek bir uygulama geliştiriyorum. İlk olarak, kullanıcı oturum açma düğmesine tıklamanız gerektiğinde, giriş kimliği ve şifresi doldurulduktan sonra basit bir açılır ekran görünecektir ve arkadaş listesini gösterecektir.
Her şey yolunda ve Firefox, Chrome, IE'de çalışıyor ancak Safari ve iPhone'da açılır.
Birisi bana channelUrl içinde alan adı ve kanal adı eklememi öneriyor. Bir channel.html oluşturun ve referans ekleyin ama bana yardımcı olmadı.
Ben çok araştırıyorum ama yardımcı olmadı.Facebook Oturum açmadı Safari/iPhone'da açılma

İşte kodum.
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 

benim tam israf sonra ... Bu dosyadaki

<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;"/> 

cevap

4

Tamam custom.js ait referans ekleyin
refer_friend.html gün bir cevap aldım. Giriş düğmesine tıkladığınızda, Javascript_Facebook Sdk'u kullanarak açılır pencere açılır. Ve Safari veya iPhone'da (benimki), Block-popup seçeneğini etkinleştiriyorum.
Bu yüzden Facebook giriş penceresini göremiyorum. pop-up penceresine izin vermelisiniz.
Sen

Safari-disable Block pop-up windows 

veya

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

tıklayarak pop-up izin verebilir veya bir klavye kısayolunu kullanabilirsiniz:

shift-[command key]-K. 

alkış.

+4

Kodunuzdaki temel sorun, 'FB.login'otomatik olarak adlandırmanızdır; bu durumda pop-up'ın mevcut tarayıcı tarafından engellenmesi büyük olasılıktır. Genel öneri, bu yöntemi yalnızca açık kullanıcı etkileşimi, örn. girişi tetiklemek için bir bağlantıya/düğmesine tıklayarak. Bu bilgi için – CBroe

+0

teşekkürler. Bunu deneyeceğim. –

+0

Safari çok hassas görünüyor. Bir tıklama işleyicisi içinde yukarıdaki kodda FB.getLoginStatus çağırırsanız aynı şey olur. Şu anda Safari Sürümü 6.0.5'de (7536.30.1) bunu yaşıyor. Bunun bir fonksiyonun içinde FB.login çağrıldığını, çünkü bir kullanıcı tıklaması olayının tetiklediği/çağrılsa bile ... – Hans

İlgili konular