- textInput 포커스 될때, 키보드가 올라오면서 뷰가 위로 올라감.
AndroidManifest.xml 파일에 설정값이랑 관련있음
android:windowSoftInputMode="adjustResize"
관련 정보
아이폰은 폰트 이름으로 적용되고, 안드로이드는 파일이름 적용됨.
확장자가 대문자일 경우 적용 안되는 듯 함.( 안드로이드에서 확인 )
fontFamily 에 설정한 폰트로 하면 적용되나, fontWeight를 bold로 설정할 경우에 적용이 안됨.
-> 아마도 해당 폰트에 bold 버전이 함께 삽입되어야 하는 것으로 생각됨.
- Facebook login
- Runtime Error : The Facebook sdk must be initialized before calling activateApp
<meta-data android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id"/>
위의 메타 데이터를 application 태그 내부에 넣지않고, 외부에 넣어서 발생함.
- 카카오 로그인
- 이슈 : "AUTHORIZATION_FAILED: invalid android_key_hash or ios_bundle_id or web_site_url"
- 카카오 로그인을 붙이다가 보면, 키 해쉬를 등록하는 부분이 있다. 개발 환경이 vscode이다 보니 파워쉘로 작업했다. 이것이 화근이었음.
- 코드상으로 키 해쉬를 추출하는 것과, keytool을 이용해서 추출하는 것이 달랐음
- 원인은 파워쉘에서 해서 문제였음. 명령 프롬프트 창에서 시도하니 같은 값이 나왔음.
- 아래와 같이 추출한 키 값을 카카오- 내 어플리케이션 - 안드로이드 - 키해쉬 에 등록해야함
keytool -exportcert -alias androiddebugkey -keystore c:\users\sijoo\.android\debug.keystore -storepass android -keypass android | openssl sha1 -binary | openssl base64
package io.efil.dogcent;
import android.app.Application; import com.facebook.CallbackManager; import com.facebook.FacebookSdk; import com.facebook.appevents.AppEventsLogger; import com.facebook.react.ReactApplication; import com.dooboolab.kakaologins.RNKakaoLoginsPackage; import com.dooboolab.naverlogin.RNNaverLoginPackage; import com.facebook.reactnative.androidsdk.FBSDKPackage; import com.reactnativecommunity.webview.RNCWebViewPackage; import com.dylanvann.fastimage.FastImageViewPackage; import com.oblador.vectoricons.VectorIconsPackage; import com.swmansion.gesturehandler.react.RNGestureHandlerPackage; import com.facebook.react.ReactNativeHost; import com.facebook.react.ReactPackage; import com.facebook.react.shell.MainReactPackage; import com.facebook.soloader.SoLoader; import com.kevinresol.react_native_default_preference.RNDefaultPreferencePackage;
import java.util.Arrays; import java.util.List;
import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.Signature; import static com.kakao.util.helper.Utility.getPackageInfo; import java.security.MessageDigest; import android.util.Base64; import java.security.NoSuchAlgorithmException; import android.util.Log;
public class MainApplication extends Application implements ReactApplication { private static CallbackManager mCallbackManager = CallbackManager.Factory.create(); protected static CallbackManager getCallbackManager() { return mCallbackManager; }
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { @Override public boolean getUseDeveloperSupport() { return BuildConfig.DEBUG; }
@Override protected List<ReactPackage> getPackages() { return Arrays.<ReactPackage>asList( new MainReactPackage(), new RNKakaoLoginsPackage(), new RNNaverLoginPackage(), new FBSDKPackage(mCallbackManager), new RNCWebViewPackage(), new FastImageViewPackage(), new VectorIconsPackage(), new RNGestureHandlerPackage(), new RNDefaultPreferencePackage() ); }
@Override protected String getJSMainModuleName() { return "index"; } };
@Override public ReactNativeHost getReactNativeHost() { return mReactNativeHost; }
@Override public void onCreate() {
super.onCreate(); Log.e("Key Hash : ", getKeyHash(this)); AppEventsLogger.activateApp(this); SoLoader.init(this, /* native exopackage */ false);
}
public static String getKeyHash(final Context context) { PackageInfo packageInfo = getPackageInfo(context, PackageManager.GET_SIGNATURES);
if (packageInfo == null) return null;
for (Signature signature : packageInfo.signatures) { try { Log.w("KEYHASH", "signature=" + signature); MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); return Base64.encodeToString(md.digest(), Base64.NO_WRAP); } catch (NoSuchAlgorithmException e) { Log.w("KEYHASH", "Unable to get MessageDigest. signature=" + signature, e); } } return null; }
}
|