#javascript #facebook #url-redirection #facebook-app-center
#javascript #Facebook #перенаправление #facebook-app-center
Вопрос:
Я получаю странную ошибку в браузере facebook, когда мой социальный логин по какой-то причине просто не работает. Это похоже на то, что браузер приложений facebook не может открыть новое окно, когда кто-то пытается зарегистрироваться в социальных сетях, таких как Google или Facebook, и выдает мне пустое окно с сообщением «закрытие окна …».
Я пытался найти некоторые ответы в Интернете, но это немного сложнее, чем просто использовать googlechrome://navigate?url=url.com или googlechrome://url.com, есть ли какой-либо другой способ перенаправить пользователя (с помощью js или html)из обычного браузера, а не из facebooks для Android и ios?
Теперь, чтобы объяснить, я думаю, что в коде / ссылках нет ничего особенного, ссылки для регистрации в социальных сетях просто открываются в небольших окнах на настольных компьютерах или в новом окне на мобильных устройствах через chrome или любой другой браузер (кроме facebooks).
Есть ли шанс, что кто-нибудь из вас, мастера, столкнулся с подобной проблемой и нашел хорошее решение ?!
<a class="btn-fb"
href="loginwith_facebook"
target="_blank"
onclick="openOAuthLogin(this, event)"
data-category="some_category"
data-action="Click"
data-label="Connect"
>
<i class="fa fa-facebook"></i>
<span class="facebook-label desk">Continue with Facebook</span>
<span class="facebook-label mob">Facebook</span>
</a>
и JS:
function openOAuthLogin(element, event) {
window.open(element.href, 'Login', 'width=500, height=500');
event.preventDefault();
}
Комментарии:
1. Ну, если всплывающие окна являются основной проблемой, то я бы попытался заменить window.open в первую очередь и обработать login в том же экземпляре window, а не в новом. (Особенности могут зависеть от того, какой поток входа вы используете, это невозможно сделать с помощью FB.login из JS SDK, в этом случае вам придется реализовать его самостоятельно, developers.facebook.com/docs/facebook-login /… )
2. @ 04FS Да, даже если я открою его в том же окне, единственный вход / регистрация в социальной сети, который я мог бы получить, — это linkedin (по какой-то причине) и facebook, если я его настрою, у меня их 4, поэтому я просто удалил социальные сети для браузера FB и внес некоторые изменениядля некоторых мобильных устройств спасибо!
Ответ №1:
Итак, лучше всего перехватить тип браузера и просто удалить социальную опцию для входа или регистрации с помощью
function isFacebookApp() {
var ua = navigator.userAgent || navigator.vendor || window.opera;
return (ua.indexOf("FBAN") > -1) || (ua.indexOf("FBAV") > -1);
}
if(isFacebook){
//ToDo: some logic or ui manipulation
}
К сожалению, у нас нет власти над браузером facebook, и единственный способ перенаправить пользователя из него — это сам пользователь, установив какой-либо параметр таким образом.
Для нас, разработчиков, нам просто нужно оставить форму входа / регистрации.