探索HAPENLY的React Native与Android整合方案
import com.facebook.react.ReactActivity
import com.facebook.react.ReactPackage
import com.facebook.react.bridge.NativeModule
import com.facebook.react.bridge.ReactApplicationContext
import com.facebook.react.uimanager.ViewManager
class MainActivity : ReactActivity() {
override fun createAdditionalReactPackages(): List<ReactPackage> {
return listOf(MyReactNativePackage())
}
}
class MyReactNativePackage : ReactPackage {
override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
return listOf(MyNativeModule(reactContext))
}
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
return emptyList<ViewManager<*, *>>()
}
}
class MyNativeModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) {
override fun getName(): String {
return "MyNativeModule"
}
// Example method
// See https://reactnative.dev/docs/native-modules-android
@ReactMethod
fun exampleMethod(stringArgument: String, intArgument: Int, promise: Promise) {
// TODO: Implement some actual native code
promise.resolve(HashMap<String, Any>())
}
}
这个代码示例展示了如何在Android项目中创建和注册一个自定义的React Native模块。首先,我们创建了一个继承自ReactActivity
的MainActivity
类。然后,我们创建了一个实现了ReactPackage
接口的MyReactNativePackage
类,用来注册我们的自定义原生模块MyNativeModule
。MyNativeModule
类继承自ReactContextBaseJavaModule
,并实现了一个示例方法exampleMethod
,该方法接受字符串和整数作为参数,并通过Promise机制返回一个解决值。
评论已关闭