2017-01-25 3 views
7

Я использую response-native-fbsdk. Как я могу изменить текст кнопки входа в fb из «Войти с facebook» в «Продолжить с fb»?Измените текст кнопки входа FB (response-native-fbsdk)

компонент выглядит так, и я не могу найти способ, чтобы изменить его:

<LoginButton 
      style={styles.facebookbutton} 
      readPermissions={["public_profile", 'email']} 
      onLoginFinished={ 
      (error, result) => { 
       if (error) { 
       console.log("login has error: " + result.error); 
       } else if (result.isCancelled) { 
       console.log("login is cancelled."); 
       } else { 
       AccessToken.getCurrentAccessToken().then(
        (data) => { 
        console.log(data); 
        console.log(data.accessToken.toString()); 
        } 
       ) 
       } 
      } 
      } 
      onLogoutFinished={() => alert("logout.")}/> 
+0

afaik нельзя изменить следующий в официальном плагине Android-браузера, поэтому я предполагаю, что это невозможно с реагированием на native fbsk. вы ни в коем случае не должны изменять текст, пользователи всегда должны точно знать, что они могут ожидать: «логин». – luschn

+0

Здесь (https://developers.facebook.com/docs/facebook-login/userexperience) саты вы можете и, возможно, должны его изменить, потому что он преобразуется лучше. Пожалуйста, проверьте раздел разработки кнопок – perrosnk

+0

, вам может понадобиться создать свою собственную кнопку входа в систему, тогда – luschn

ответ

15

Самый простой способ заключается в upgrade the SDK to 4.19.0:

LoginButton UI изменяется в 4.19. 0. Вместо «Войти в Facebook» на кнопке теперь отображается «Продолжить с Facebook». Цвет кнопки изменяется на # 4267B2 из # 3B5998. Высота кнопки уменьшается с 30dp до 28dp из-за использования меньшего размера шрифта и paddings вокруг более крупного логотипа Facebook.

Интерфейс для использования LoginButton остается прежним. Пожалуйста, найдите время, чтобы обеспечить обновленный LoginButton не нарушает UX вашего приложения

Однако, если вы после настройки текста, так что буквально означает «Продолжить с фб» Вы должны были бы воссоздать компонент Button, и использовать его, чтобы вызвать Login Manager, то есть:

import React, { Component } from 'react' 
import { Button } from 'react-native' 

import { LoginManager } from 'react-native-fbsdk' 

export default class Login extends Component { 
    handleFacebookLogin() { 
    LoginManager.logInWithReadPermissions(['public_profile', 'email', 'user_friends']).then(
     function (result) { 
     if (result.isCancelled) { 
      console.log('Login cancelled') 
     } else { 
      console.log('Login success with permissions: ' + result.grantedPermissions.toString()) 
     } 
     }, 
     function (error) { 
     console.log('Login fail with error: ' + error) 
     } 
    ) 
    } 
    render() { 
    return (
     <Button 
     onPress={this.handleFacebookLogin} 
     title="Continue with fb" 
     color="#4267B2" 
     /> 
    ) 
    } 
} 

Таким образом, также дает вам полный контроль над пользовательским интерфейсом, который особенно удобно, если у вас есть собственные библиотеки компонентов, или использовать готовый одно как NativeBase.

+0

Вы знаете, как запрашивать разрешения на чтение и публикацию с помощью LoginManager? –

+0

Я предполагаю, что вам придется цепочки 'LoginManager.logInWithReadPermissions' и' LoginManager.logInWithPublishPermissions' в обещании или что-то в этом роде, но имейте в виду, что пользователям не нравится, когда вас попросят получить тонны разрешений, прежде чем они когда-либо смогут использовать приложение. Обычная практика - запрашивать абсолютный минимум при входе в систему, а затем запрашивать больше разрешений в контексте при использовании приложения. См. Https://developers.facebook.com/docs/facebook-login/best-practices#context – designorant

0

Для тех, кто хочет настроить кнопку, я не нашел способ изменить ее текст, но вы можете изменить ширину и высоту этой кнопки в node-modules/react-native-fbsdk/js/FBLoginButton.js.

const styles = StyleSheet.create({ 
    defaultButtonStyle: { 
    height: 30, 
    width: 195, 
    }, 
}); 

я написал здесь значение 195, так что «Продолжить с Facebook» текст хорошо подходит.

+4

Нельзя изменять «node_modules», поскольку они управляются npm/нитью и заменяются любым обновлением/обновлением/переустановить. – designorant

Смежные вопросы