欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android原生嵌入React Native詳解

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

1.首先集成的項(xiàng)目目錄

我使用的是直接按照react-native init Project 的格式來導(dǎo)入的,也就是說,我的Android項(xiàng)目目錄是跟node_modules是在一個(gè)目錄下的。

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

說一下我們?cè)趺撮_發(fā)和運(yùn)行分開吧,我們開發(fā)一般會(huì)選擇webstrom,開發(fā)后我們會(huì)Android和ios的編譯分開。



啟動(dòng)npm

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

編寫Android原生代碼,用來調(diào)用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)絡(luò)等一些權(quán)限。

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

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


最后你就可以在你的RN項(xiàng)目里面看到一個(gè)package.json。


運(yùn)行Demo

注:可能會(huì)出現(xiàn)java.lang.RuntimeException: Could not get BatchedBridge, make sure your bundle is packaged correctly這個(gè)錯(cuò)誤,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/

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android APP瘦身(清除工程中沒用到的資源)詳解

    Android APP瘦身(清除工程中沒用到的資源)詳解

    這篇文章主要介紹了Android 清除工程中沒用到的資源詳解的相關(guān)資料,這里舉例說明如何實(shí)現(xiàn),需要的朋友可以參考下
    2016-11-11
  • Android實(shí)現(xiàn)Tab切換界面功能詳解

    Android實(shí)現(xiàn)Tab切換界面功能詳解

    這篇文章主要為大家詳細(xì)介紹了Android如何實(shí)現(xiàn)Tab切換界面的功能,以及對(duì)Tab變化事件進(jìn)行監(jiān)聽。文中示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-05-05
  • Android仿XListView支持下拉刷新和上劃加載更多的自定義RecyclerView

    Android仿XListView支持下拉刷新和上劃加載更多的自定義RecyclerView

    這篇文章主要介紹了仿XListView支持下拉刷新和上劃加載更多的自定義RecyclerView的實(shí)例代碼,非常不錯(cuò),具有參考價(jià)值,感興趣的朋友可以參考下
    2016-05-05
  • 圖文詳解自定義View視圖的屬性及引用

    圖文詳解自定義View視圖的屬性及引用

    這篇文章主要介紹了圖文詳解自定義View視圖的屬性及引用,由于Android自帶的視圖無法滿足自己需求,又或者美觀度不夠自己的要求,我們就要自來親自設(shè)計(jì)自己的視圖,需要的朋友可以參考下
    2023-04-04
  • Kotlin 實(shí)現(xiàn)按鈕點(diǎn)擊跳轉(zhuǎn)監(jiān)聽事件方式

    Kotlin 實(shí)現(xiàn)按鈕點(diǎn)擊跳轉(zhuǎn)監(jiān)聽事件方式

    這篇文章主要介紹了Kotlin 實(shí)現(xiàn)按鈕點(diǎn)擊跳轉(zhuǎn)監(jiān)聽事件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Android實(shí)現(xiàn)跑馬燈效果的方法

    Android實(shí)現(xiàn)跑馬燈效果的方法

    這篇文章主要介紹了Android實(shí)現(xiàn)跑馬燈效果的方法,通過頁面XML布局設(shè)置實(shí)現(xiàn)帶有跑馬燈效果的文字滾動(dòng)顯示功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-10-10
  • Android學(xué)習(xí)筆記45之gson解析json

    Android學(xué)習(xí)筆記45之gson解析json

    JSON即JavaScript Object Natation,是一種輕量級(jí)的數(shù)據(jù)交換格式,采用完全獨(dú)立于語言的文本格式,為Web開發(fā)提供了一種理想的數(shù)據(jù)交換格式。通過本篇文章給大家介紹Android學(xué)習(xí)筆記45之gson解析json的相關(guān)內(nèi)容,對(duì)android gson解析json相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • Android實(shí)現(xiàn)帶磁性的懸浮窗體效果

    Android實(shí)現(xiàn)帶磁性的懸浮窗體效果

    這篇文章主要介紹了Android實(shí)現(xiàn)帶磁性的懸浮窗體效果,涉及Android針對(duì)窗體的動(dòng)態(tài)操作相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-07-07
  • Android CheckBox中設(shè)置padding無效解決辦法

    Android CheckBox中設(shè)置padding無效解決辦法

    這篇文章主要介紹了Android CheckBox中設(shè)置padding無效解決辦法的相關(guān)資料,希望通過本文能幫助到大家,讓大家解決這樣類似的問題,需要的朋友可以參考下
    2017-10-10
  • Android實(shí)現(xiàn)網(wǎng)易嚴(yán)選標(biāo)簽欄滑動(dòng)效果

    Android實(shí)現(xiàn)網(wǎng)易嚴(yán)選標(biāo)簽欄滑動(dòng)效果

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)網(wǎng)易嚴(yán)選標(biāo)簽欄滑動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07

最新評(píng)論