React Native 与 嵌入Android原生与Activity页面互相跳转
warning:
这篇文章距离上次修改已过204天,其中的内容可能已经有所变动。
在React Native与嵌入Android原生Activity页面之间进行跳转和数据传递,可以通过自定义React Package和原生模块来实现。以下是实现这一功能的基本步骤和示例代码:
- 创建一个React Native模块(JavaScrip):
// MyNativeModule.js
import { NativeModules } from 'react-native';
export default NativeModules.MyNativeModule;
- 创建原生模块并暴露方法(Java):
// MyNativeModule.java
import android.app.Activity;
import android.content.Intent;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.Callback;
public class MyNativeModule extends ReactContextBaseJavaModule {
private static final String MODULE_NAME = "MyNativeModule";
private Activity mCurrentActivity;
public MyNativeModule(ReactApplicationContext context) {
super(context);
mCurrentActivity = getCurrentActivity();
}
@Override
public String getName() {
return MODULE_NAME;
}
@ReactMethod
public void startNativePage(String data, Callback callback) {
Intent intent = new Intent(mCurrentActivity, NativeActivity.class);
intent.putExtra("data", data);
mCurrentActivity.startActivity(intent);
callback.invoke("Page navigated to native activity");
}
}
- 注册模块(Java):
// MainApplication.java
import com.facebook.react.ReactApplication;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import java.util.Arrays;
import java.util.List;
public class MainApplication extends Application implements ReactApplication {
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new MyNativeModulePackage() // 注册自定义模块
);
}
};
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
}
- 创建React Package来注册原生模块(Java):
// MyNativeModulePackage.java
import com.facebook.react.ReactPackage;
import com.facebook.reac
评论已关闭