Android 원생 삽입 React Native 상세 설명

4137 단어 AndroidReactNative
1.우선 통 합 된 프로젝트 디 렉 터 리
저 는 그냥 react-native 를 사용 합 니 다. init Project 내 안 드 로 이 드 프로젝트 디 렉 터 리 는 nodemodules 는 한 디 렉 터 리 아래 에 있 습 니 다.
우리 init 가 프로젝트 를 마 친 후에 프로젝트 초기 화가 완료 되 었 습 니 다.이때 우 리 는 명령 react-native run-android 로 프로젝트 를 직접 실행 할 수 있 습 니 다.어떻게 디 버 깅 하 는 지 에 대해 서 는 이미 말 했 습 니 다.
우리 가 어떻게 개발 하고 운영 하 는 지 말 해 보 세 요.우 리 는 일반적으로 웹 스 트 롬 을 선택 합 니 다.개발 후 우 리 는 안 드 로 이 드 와 ios 의 컴 파일 을 분리 합 니 다.




npm 시작
다음은 안 드 로 이 드 가 RN 환경 에 포 함 된 것 을 말씀 드 리 겠 습 니 다.
RN 을 호출 하기 위해 Android 네 이 티 브 코드 를 작성 합 니 다.

package com.reactdemo;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.KeyEvent;

import com.facebook.react.LifecycleState;
import com.facebook.react.ReactInstanceManager;
import com.facebook.react.ReactRootView;
import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler;
import com.facebook.react.shell.MainReactPackage;

public class MainActivity extends AppCompatActivity implements DefaultHardwareBackBtnHandler {

 private ReactInstanceManager mReactInstanceManager;
 private ReactRootView mReactRootView;


 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  mReactRootView = new ReactRootView(this);

  mReactInstanceManager = ReactInstanceManager.builder()
    .setApplication(getApplication())
    .setBundleAssetName("index.android.bundle")
    .setJSMainModuleName("index.android")
    .addPackage(new MainReactPackage())
    .setUseDeveloperSupport(BuildConfig.DEBUG)
    .setInitialLifecycleState(LifecycleState.RESUMED)
    .build();

  mReactRootView.startReactApplication(mReactInstanceManager, "ReactDemo", null);

  setContentView(mReactRootView);
 }

 @Override
 public boolean onKeyUp(int keyCode, KeyEvent event) {
  if (keyCode == KeyEvent.KEYCODE_MENU && mReactInstanceManager != null) {
   mReactInstanceManager.showDevOptionsDialog();
   return true;
  }
  return super.onKeyUp(keyCode, event);
 }

 @Override
 public void onBackPressed() {
  if (mReactInstanceManager != null) {
   mReactInstanceManager.onBackPressed();
  } else {
   super.onBackPressed();
  }
 }

 @Override
 public void invokeDefaultOnBackPressed() {
  super.onBackPressed();
 }

 @Override
 protected void onPause() {
  super.onPause();

  if (mReactInstanceManager != null) {
   mReactInstanceManager.onHostPause();
  }
 }
 @Override
 protected void onResume() {
  super.onResume();

  if (mReactInstanceManager != null) {
   mReactInstanceManager.onHostResume(this, this);
  }
 }
}

네트워크 등 권한 을 더 해 야 합 니 다.
package.json 을 만 들 고 react native 패 키 지 를 추가 합 니 다.
명령 npm init 를 사용 하여 절 차 를 따라 가면 됩 니 다.캡 처 해 드 리 겠 습 니 다.

마지막 으로 RN 프로젝트 에서 package.json 을 볼 수 있 습 니 다.

실행 데모
주:java.lang.Runtime 예외 가 발생 할 수 있 습 니 다:BatchedBridge 를 얻 을 수 없습니다.make sure your bundle is packaged correctly 이 오류,react-native bundle―platform android―dev false―entry-file index.android.js―bundle-output ReactDemo/app/src/main/assets/index.android.bundle―sourcemap-outpu ReactDemo/app/src/main/assets/index.android.map ―assets-dest ReactDemo/app/src/main/res/
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기