Facebook登录未在Safari / iPhone中打开

问题描述:

我正在创建一个显示Facebook好友的应用程序。首先,用户需要点击登录按钮,然后在填写登录ID和密码后会出现一个简单的弹出屏幕,它会显示朋友列表。

一切正常,可以在Firefox,Chrome,IE上运行但是无法打开在Safari和iPhone中弹出。

有人建议我在 channelUrl 中添加域名和频道名称。我创建了一个 channel.html 并添加引用,但它没有帮助我。

我搜索了很多但没有找到帮助。

I am creating one application which show Facebook friend. First, user need to click on login button then one simple popup screen will appear after filling login id and password it will show friend list.
Everything ok and run on Firefox, Chrome,IE but it will not open popup in Safari and iPhone.
someone suggest me add domain name and channel name in channelUrl. I create one channel.html and add reference but it didn't help me.
I search lot's but didn't find helpful.

这是我的代码。

Custom.js

Here is my code.
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

channel.html

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

refer_friend.html

我添加 custom.js $ c $的引用c>在此文件中

refer_friend.html
I add reference of custom.js in this file

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


好的...浪费了我一整天后我得到了一个答案。使用 Javascript_Facebook Sdk ,当您单击登录按钮时,将打开弹出窗口。在Safari或iPhone(我的)中,我启用了Block-popup选项。

因此我无法看到Facebook登录窗口。你需要允许弹出窗口。

你可以点击

Ok... After wasting my full day i got a answer. Using Javascript_Facebook Sdk, when you click on Login button, it will open popup window. And in Safari or iPhone(mine), i enable Block-popup option.
Therefore i am not able to see Facebook login window. you need to allow pop-up window.
You can allow pop-up by clicking on

Safari-disable Block pop-up windows  

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

或您可以使用键盘快捷键:

or You can use a keyboard shortcut:

shift-[command key]-K.

欢呼。