2017-01-25 13 views
7

私はreact-native-fbsdkを使用しています。 fbログインボタンのテキストを 'facebookでログイン'から 'fbで続ける'に変更するにはどうすればよいですか?FBログインボタンのテキストを変更する(react-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公式のアンドロイドloginbuttonプラグインで次のものを変更することはできませんので、私はそれが反応ネイティブ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で続行」と表示されます。ボタンの色は#3B5998から#4267B2に変更されます。ボタンの高さは30dpから28dpに減少しました。これは、Facebookのロゴの周りに小さなフォントサイズとパディングを使用するためです。

LoginButtonを使用するためのインターフェイスは変わりません。あなたは、それは文字通りあなたがButtonコンポーネントを再作成する必要があるだろう「FBで続行」と言うように、テキストをカスタマイズした後なら、

ただし、アプリのUXを破壊しない更新LoginButtonを確保するために時間がかかる、としてくださいすなわち、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などのひとつになって準備を使用する場合に特に便利であるUIを完全に制御できます。

+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, 
    }, 
}); 

ここでは、「Facebookで続ける」テキストがうまく収まるように195の値を書きました。

+4

npm/yarnによって管理されているので、node_modulesは変更しないでください。更新/アップグレードに置き換えられます/再インストール。 – designorant