在React Native中调用Java方法可以通过以下步骤实现:
package com.yourpackage;
import android.widget.Toast;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
public class MyJavaModule extends ReactContextBaseJavaModule {
public MyJavaModule(ReactApplicationContext reactContext) {
super(reactContext);
}
@Override
public String getName() {
return "MyJavaModule";
}
@ReactMethod
public void showToast(String message) {
Toast.makeText(getReactApplicationContext(), message, Toast.LENGTH_SHORT).show();
}
}
package com.yourpackage;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;
import java.util.Arrays;
import java.util.List;
import com.yourpackage.MyJavaModule; // 导入自定义的Java模块
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 MyJavaModule() // 注册自定义的Java模块
);
}
@Override
protected String getJSMainModuleName() {
return "index";
}
};
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
@Override
public void onCreate() {
super.onCreate();
SoLoader.init(this, /* native exopackage */ false);
}
}
import { NativeModules } from 'react-native';
const MyJavaModule = NativeModules.MyJavaModule;
MyJavaModule.showToast('Hello from Java');
在上述代码中,我们首先通过NativeModules
模块引入了我们在Java中创建的模块MyJavaModule
。然后,我们可以直接调用该模块的方法,例如showToast
方法。
这样,在React Native中调用Java方法就完成了。当我们在JavaScript中调用MyJavaModule.showToast('Hello from Java')
时,将会触发Java中的showToast
方法,显示一个短暂的Toast消息。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云