>source

다른 앱이 포함 된 모바일 앱을 만들어 실행할 수 있어야합니다. 기본적으로 앱 목록 (서버에 게시하는 앱)이있는 "앱 센터"와 비슷하며 사용자가 앱 중 하나를 열어 앱을 열 수 있습니다.

Expo의 앱 에 대해 생각하면 사용자는 자신의 앱의 QR 코드를 스캔 할 수 있으며 자동으로 컴파일되어 열립니다. 이것은 내가 원하는 기능에 가깝습니다.

열 수있는 앱은 반응 네이티브를 사용하여 만들어지고 Gitlab의 GIT 리포지토리에 저장됩니다.

다음 예를 고려하십시오 :

앱 센터라고하는 앱을 시작하면 앱 목록이 표시됩니다. 사용자가 그중 하나를 클릭하면 내부적으로 열립니다.

<시간>

다음은 "보다 기술적 인"예입니다 :

  1. 앱 센터가 시작되었습니다
  2. 앱은 https : // myappcenterserver를 호출하여 서버에서 표시 할 앱 목록을 가져옵니다. com/all-apps
  3. 그들은 표시되고 프레스 이벤트를 청취합니다
  4. 사용자가AP123을 ID로첫 번째 앱(내가 아는 아주 나쁜 이름)/li>
  5. Google 앱은 https://myappcenterserver.com/app/AP123, 이것은 Git 저장소에서 앱의 반응 네이티브 소스 코드를 반환합니다
  6. Google 앱 센터는5단계에서 코드를 컴파일하여 실행합니다
<시간>

따라서 내가 고려해야 할 가장 좋은 방법은 당신입니다.

CodePush 또는 react-native-dynamic-bundle과 같은 원격 코드 솔루션을 사용해야합니까? 그들이이 맥락에 맞습니까?

  • 답변 # 1

    두 가지 방법 만 알고 있지만 정확히 원하는 것은 아닙니다.

    1-모든 앱을 React Native로 만들고 안에 넣습니다. 그런 다음 서버에 따라 X 앱이 표시됩니다.

    2-React-Native에서 링크 사용. 기능 중 하나가 내가 만든 다른 앱과 연결하는 앱을 만들었습니다. 버튼을 클릭하면 앱이 기기에 설치되어 있으면 버튼을 열려고 시도합니다. 그렇지 않으면 다운로드 할 앱을 보여주는 앱 스토어/구글 플레이가 열립니다.

    링크를 사용하는 방법입니다 : https://facebook.github.io/react-native/docs/linking

    원하는 것이 아니라는 것을 알고 있지만 요청하는 것이 전혀 가능하지 않다고 생각합니다.

  • 답변 # 2

    부분적으로 코드 푸시를 통해 가능합니다

    앱마다 다른 코드 푸시 환경을 만듭니다. (APP1 APP2 등)

    앱을 부팅 할 때, 응용 프로그램 목록 및 해당 코드 푸시 배포 키를 가져 오기 위해 API 호출을합니다.

    버튼 클릭 codepush.sync (deployment_key)->앱을 다시 시작한 다음 앱으로 바로 옮깁니다 (앱 이름을 AsyncStorage에 저장하고 탐색을 통해 직접 jupm)

    그러나 경고는 거래 차단기 일 수 있습니다  -앱을 선택한 후 앱이 다시로드됩니다  -주요 반응 버전 업그레이드 (기본 Java/oc 변경)는 js를 통해 처리 할 수 ​​없기 때문에 상점 릴리스가 필요합니다 (거래 차단기가 아닐 수 있음)

    더 나은 방법은 하나의 컨테이너 앱을 만들고 한 번은 codepush 환경을 만드는 것입니다.

    [{app:"A1", version: 2.0.0}, {app: "A2", version: 1.2.0}] 와 같은 중앙 구성

    <리>다른 모든 애플리케이션은 A1, A2는, A3 컨테이너 앱 플러그인으로 노출 될 수있는 오브젝트를 공개한다.

    CI가 여러 저장소를 동적으로 형성하는 앱 빌드를 처리합니다. 다른 저장소에서 생성 된 여러 npm 패키지) 및 js를 codepush 서버로 푸시합니다. <리>이는 용기 (얀 실 추가 A3, A2 A1 추가 추가 얀 배시 스크립트) 구성에서 모든 앱 추가

    앱이 구성을 읽고 A1 A2 등을로드합니다.

    CD는 새로운 코드 푸시 릴리스를 만듭니다.

    중앙 구성이 변경 될 때마다 반복됩니다. (A1이 npm 패키지를 게시 한 후 중앙 구성을 업데이트합니다)

    모든 번들을 하나로 묶어 재시작 문제를 해결합니다.

    코드 푸시 : https://docs.microsoft.com/en-us/appcenter/distribution/codepush/react-native#dynamic-deployment-assignment

    또는 엑스포 코드 https://github.com/expo/expo/bloo/d56076241cef55b0a93a5c0bb8dc690270e42dcb/home/screens/QRCodeScreen.android.js#L89를 통해 가고 싶을 수도 있습니다

관련 자료

  • 이전 javascript - 라우터 V4 반응, 루트의 첫 번째 상위 항목과 일치하지 않음
  • 다음 android - 사용자 정의 팝업 메뉴 - 어떻게?