ウェブサイトのログインに 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/」
手順を再現するには:
- iPhone でhttp://eventstagr.am/registerにアクセスします(Safari Mobile と Chrome はどちらも機能しません)。
登録をクリック
- 予想: Facebook タブを閉じて、登録ページで JavaScript コールバック関数を呼び出す必要があります
- ACTUAL : Facebook タブが閉じて、フォーカスが登録ページに戻らない
または、すでにアカウントを持っている場合は、上記の手順を繰り返しますが、http://eventstagr.am/loginからの結果は同じです。