React native 移植原生android module
来源:互联网 发布:机房网络管理 编辑:程序博客网 时间:2024/06/01 09:38
第一步:创建一个普通的module
第二步:添加依赖
compile 'com.facebook.react:react-native:0.20.1'
第三步:添加网络权限
<uses-permission android:name="android.permission.INTERNET"/>
第四步:添加原生代码:
package com.xuan.reactnativetest;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 ReactRootView reactRootView; private ReactInstanceManager reactInstanceManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); reactRootView = new ReactRootView(this); //ReactInstanceManager 来管理activity的生命周期 reactInstanceManager = ReactInstanceManager.builder() .setApplication(getApplication()) .setBundleAssetName("index.android.bundle") .setJSMainModuleName("index.android") .addPackage(new MainReactPackage()) .setUseDeveloperSupport(BuildConfig.DEBUG) .setInitialLifecycleState(LifecycleState.RESUMED) .build(); reactRootView.startReactApplication(reactInstanceManager, "module name:hello world", null); setContentView(reactRootView); } @Override public void onBackPressed() { if (reactInstanceManager != null) { reactInstanceManager.onBackPressed(); } else { super.onBackPressed(); } } @Override protected void onPause() { super.onPause(); if (reactInstanceManager != null) { reactInstanceManager.onPause(); } } @Override protected void onResume() { super.onResume(); if (reactInstanceManager != null) { reactInstanceManager.onResume(this, this); } } @Override public void invokeDefaultOnBackPressed() { super.onBackPressed(); } @Override public boolean onKeyUp(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_MENU && reactInstanceManager != null) { reactInstanceManager.showDevOptionsDialog(); return true; } return super.onKeyUp(keyCode, event); }}
1 0
- React native 移植原生android module
- React Native移植原生Android
- React Native移植到原生Android项目
- Android原生到React Native移植
- React Native移植原生Android项目
- 【React Native开发】React Native移植原生Android项目(4)
- 【React Native开发】React Native移植原生Android项目(Mac用)
- 【WINDOWS环境 React Native学习】React Native移植原生Android项目及其各种奇葩Bug解决
- React-Native移植-Android
- Android原生嵌入React Native
- Android React Native使用原生模块
- Android React Native使用原生UI组件
- Android React Native使用原生模块
- Android React Native植入原生应用小记
- React-native植入原生Android应用
- Android之原生项目集成React Native
- React Native添加Android原生模块
- React Native调用Android原生模块
- 在ios系统中查看模拟器和真机中的沙盒目录
- 最短路
- Java File类功能扩展
- vs 调试技巧 1
- struct file 和 struct file_struct
- React native 移植原生android module
- Wordpress图片显示模糊的问题
- linux之echo详解
- 通过packgername 启动browser
- Java后端WebSocket的Tomcat实现
- php常见的几个魔术方法
- ^ 按位异或运算符
- linux网络编程学习计划
- C# 编译报错:“Csc.exe”已退出,代码为 -1073741515