最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android原生嵌入React Native詳解

 更新時間:2016年09月23日 16:57:11   作者:xiangzhihong8  
這篇文章主要為大家詳細介紹了Android原生嵌入React Native的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下

1.首先集成的項目目錄

我使用的是直接按照react-native init Project 的格式來導入的,也就是說,我的Android項目目錄是跟node_modules是在一個目錄下的。

我們init完項目之后,項目初始化完成了,這時候我們可以用命令react-native run-android直接運行項目,至于怎么調試,之前已經(jīng)說過。

說一下我們怎么開發(fā)和運行分開吧,我們開發(fā)一般會選擇webstrom,開發(fā)后我們會Android和ios的編譯分開。



啟動npm

下面說一下android 嵌入RN環(huán)境吧。

編寫Android原生代碼,用來調用RN

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

注意要加上網(wǎng)絡等一些權限。

創(chuàng)建package.json,添加react native包

使用命令npm init,跟著步驟走就好了,給大家截個圖:


最后你就可以在你的RN項目里面看到一個package.json。


運行Demo

注:可能會出現(xiàn)java.lang.RuntimeException: Could not get 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/

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論

潍坊市| 讷河市| 收藏| 韶关市| 万山特区| 基隆市| 泰兴市| 阿拉善盟| 禹州市| 桂林市| 喀喇| 江孜县| 内乡县| 深州市| 遂川县| 东乌珠穆沁旗| 绍兴市| 九寨沟县| 青冈县| 蓝山县| 渭源县| 女性| 阿合奇县| 海门市| 池州市| 宜阳县| 马山县| 木里| 伊金霍洛旗| 德阳市| 庆安县| 新津县| 伊金霍洛旗| 茌平县| 分宜县| 顺义区| 迭部县| 隆回县| 重庆市| 紫金县| 彰武县|