多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > htmlcss > Android原生嵌入React Native

Android原生嵌入React Native

來源:程序員人生   發布時間:2016-11-20 17:28:21 閱讀次數:4925次

1.首先集成的項目目錄

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

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

說1下我們怎樣開發和運行分開吧,我們開發1般會選擇webstrom,開發后我們會Android和ios的編譯分開。



啟動npm

下面說1下android 嵌入RN環境吧。

編寫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); } } }
注意要加上網絡等1些權限。

創建package.json,添加react native包

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


最后你就能夠在你的RN項目里面看到1個package.json。


運行Demo

注:可能會出現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/


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 岛国片在线播放 | 欧美成人精品一区二区 | 337p日本大胆欧美人术艺术精品 | 日产一区二区三区四区 | 亚洲在线网址 | www.精品| 在线爽 | 国产精品日韩欧美亚洲另类 | 欧美性受xxxx喷水视频 | 免费观看做网站爱 | 日韩欧美一二三 | 国产精品第一页在线观看 | 男女视频网站在线观看 | free性欧美hd粗暴 | 亚州精品一区二区三区 | 成人国产永久福利看片 | 一二三四在线播放免费观看中文版视频 | 亚洲 欧美 激情 另类 校园 | 男人天堂亚洲色图 | 日本久色 | 亚洲一区色图 | 啪网址 | 中文字幕日韩欧美一区二区三区 | jizzjizz视频 | 一本久草| 亚洲精品伊人久久久久 | 亚洲图欧美 | 国产成人三级经典中文 | 国产乱码一区二区三区四区 | 精品国产不卡一区二区三区 | yellow免费网站| 亚洲综合性 | www在线视频 | 国产成人精品区在线观看 | 成人精品一区二区激情 | tube44欧美| 亚洲国产精品成人综合久久久 | 欧美性猛交xxxx黑人猛交 | 麻豆va一区二区三区久久浪 | 欧美精品综合一区二区三区 | 欧美另类videosbestsex |