4

ウェブサイトのログインに Facebook JS SDK を使用しており、ページにこのコードがあります

<div id="fb-root"></div>

<script type="text/javascript">
    window.fbAsyncInit = function() {
        FB.init({"appId":"xxxxxxxxxxxxxx","xfbml":true,"oauth":true,"status":false,"cookie":true,"logging":false});
        onFbInit();
    };

    (function() {
        var e = document.createElement('script'); 
        e.src = document.location.protocol + "\/\/connect.facebook.net\/en_US\/all.js";
        e.async = true;
        document.getElementById('fb-root').appendChild(e);
    }());
</script>

    <fb:login-button scope="email" autologoutlink="false">Log in using Facebook</fb:login-button>

<script>
    function goLogIn(){
        window.location = "/fb/login_check";
    }

    function onFbInit() {.
        if (typeof(FB)!= 'undefined' && FB!= null ) {
            FB.Event.subscribe('auth.statusChange', function(response) {
                setTimeout(goLogIn, 500);
            });
        }
    }
</script>   

これはすべてのデスクトップ ブラウザと iPad で正常に動作しますが、iPhone/iPod の Mobile Safari では、ログイン ボタンで新しいタブが開きますが、ページにポスト バックしないため、コールバックは呼び出されません。ログイン (または登録) ページで Facebook ログイン ボタンをクリックすると、新しいタブで Facebook oauth ログイン ページが開きます。Facebook ログインの詳細を入力すると、Facebook タブが閉じますが、フォーカスがログイン ページに戻りません。 . インスペクタを使用するための Mac を持っていませんが、友人は、デバッグコンソールでこのエラーが発生したと言っていますfacebook.com/

手順を再現するには:

  1. iPhone でhttp://eventstagr.am/registerにアクセスします(Safari Mobile と Chrome はどちらも機能しません)。
  2. 登録をクリック

    • 予想: Facebook タブを閉じて、登録ページで JavaScript コールバック関数を呼び出す必要があります
    • ACTUAL : Facebook タブが閉じて、フォーカスが登録ページに戻らない

または、すでにアカウントを持っている場合は、上記の手順を繰り返しますが、http://eventstagr.am/loginからの結果は同じです。

4

1 に答える 1

0

モバイル Web ログイン用にアプリを登録しましたか? これを行うには ( Facebook の指示に従って)、Facebook アプリの設定に移動します。

于 2013-01-02T18:31:20.233 に答える