在AndroidStudio

创建IntentModule.java

import android.app.Activity;import android.content.Intent;import android.widget.Toast;import com.facebook.react.bridge.JSApplicationIllegalArgumentException;import com.facebook.react.bridge.ReactApplicationContext;import com.facebook.react.bridge.ReactContextBaseJavaModule;import com.facebook.react.bridge.ReactMethod;import java.util.HashMap;import java.util.Map;public class IntentModule extends ReactContextBaseJavaModule {    private static final String DURATION_SHORT_KEY = "SHORT";    private static final String DURATION_LONG_KEY = "LONG";    public IntentModule(ReactApplicationContext reactContext) {        super(reactContext);    }    @Override    public String getName() {        return "IntentModule";    }    @Override    public Map getConstants() {        final Map constants = new HashMap<>();        constants.put(DURATION_SHORT_KEY, Toast.LENGTH_SHORT);        constants.put(DURATION_LONG_KEY, Toast.LENGTH_LONG);        return constants;    }    @ReactMethod    public void show(String message, int duration) {        Toast.makeText(getReactApplicationContext(), message, duration).show();    }    @ReactMethod    public void startActivityFromJS(String name, String params){        try{            Activity currentActivity = getCurrentActivity();            if(null!=currentActivity){                Class toActivity = Class.forName(name);                Intent intent = new Intent(currentActivity,toActivity);                intent.putExtra("params", params);                currentActivity.startActivity(intent);            }        }catch(Exception e){            throw new JSApplicationIllegalArgumentException(                    "不能打开Activity : "+e.getMessage());        }    }}

创建MyReactPackage.java

import com.facebook.react.ReactPackage;import com.facebook.react.bridge.JavaScriptModule;import com.facebook.react.bridge.NativeModule;import com.facebook.react.bridge.ReactApplicationContext;import com.facebook.react.uimanager.ViewManager;import java.util.ArrayList;import java.util.Collections;import java.util.List;public class MyReactPackage implements ReactPackage {    @Override    public List> createJSModules() {        return Collections.emptyList();    }    @Override    public List createViewManagers(ReactApplicationContext reactContext) {        return Collections.emptyList();    }    @Override    public List createNativeModules(            ReactApplicationContext reactContext) {        List modules = new ArrayList<>();        modules.add(new IntentModule(reactContext));        return modules;    }}

在MainApplication.java 添加 new MyReactPackage(),

@Override    protected List getPackages() {      return Arrays.asList(          new MainReactPackage(),              new MyReactPackage(),            new PickerViewPackage()      );    }  };

在RN项目中添加RNToAndroid.js

'use strict';import { NativeModules } from 'react-native';export default NativeModules.IntentModule;

在需要调用的地方添加。

import RNToAndroid from '../RNToAndroid'; {                            // ToastAndroid.show('Awesome', ToastAndroid.SHORT);                            RNToAndroid.startActivityFromJS('com.navigatorapp.FirstActivity','js上传数据');                        }                        }>                        4444444444444                    

com.navigatorapp.FirstActivity 这个是你在安卓项目中需要添加的页面。这个你应该会写的。

更多相关文章

  1. android配置activity
  2. activity添加切换动画之后出现的黑色背景问题
  3. 【黑马Android】(03)学生管理系统/动态刷新界面
  4. android项目中单实例数据库类
  5. OKhttp上传头像,调用相机相册进行裁剪
  6. android项目迁移到androidX:类映射(android.support.v7*)
  7. android文件访问实例
  8. android添加购物车动画实现
  9. Android创建AlertDialog对话框 ==之一

随机推荐

  1. Linux 命令行快捷键
  2. 如何从PHP的mail()失败中获取额外的错误信
  3. 如何使用sed删除特殊字符
  4. linux中socket的理解
  5. Linux 驱动编译报错:error: macro "__DATE
  6. A10_android4.0下lichee的linux不能pack
  7. DELPHI10.2的LINUX数据库开发环境配置
  8. linux下安装 tomcat 和配置防火墙开放808
  9. CENTOS 修改MYSQL文件到内存盘
  10. linux查看磁盘使用情况命令