react-native-send-intent 라이브러리 코드수정

박은정·2024년 10월 29일
0

TIL

목록 보기
72/72

[1] 기존 react-native-send-intent 라이브러리의 openAppWithUri 메서드

패키지이름: intent.getPackage() => com.google.android.gms
Intent existPackage = this.reactContext.getPackageManager().getLaunchIntentForPackage(intent.getPackage())

=> existPackage에서 null이 나오기 때문에 com.google.android.gms 구글플레이 페이지로 이동함

[2] 내가 만든 네이티브코드의 openAppWithUri 메서드

패키지이름: intent.getPackage() => com.google.android.gms
ResolveInfo existActivity = reactContext.getPackageManager().resolveActivity(intent, 0);
reactContext.startActivity(intent);

=> com.google.android.gms 에서 실행할 액티비티가 있기 때문에 구글플레이 페이지로 이동하지 않음
=> 머니트리앱이 없어도 reactContext.startActivity(intent); 에서 머니트리의 구글플레이 페이지로 이동하거나 머니트리앱 실행함

[메서드 차이]

getLaunchIntentForPackage(intent.getPackage())

  • 특정패키지명에 해당하는 애플리케이션의 주 (launch) 인텐트를 반환한다.
  • 만약 해당 패키지가 시스템에 설치되어있지 않다면, null을 반환한다.
  • 주로 해당 앱을 시작할 수 있는 기본 인텐트를 얻을 때 사용한다

resolveActivity(intent, 0)

  • 해당 인텐트를 처리할 수 있는 Activity에 대한 정보를 ResolveInfo 형태로 반환한다.
  • 만약 인텐트를 처리할 수 있는 Activity가 시스템에 없다면, null을 반환한다.
  • 특정 인텐트에 응답할 수 있는 액티비티의 상세 정보를 얻을 수 있다.
profile
새로운 것을 도전하고 노력한다

0개의 댓글