feat: Add native module and package for custom functionality

This commit is contained in:
2025-12-12 23:45:12 +05:30
parent 801725edf3
commit 8613fd7d30
4 changed files with 51 additions and 6 deletions

View File

@@ -10,13 +10,15 @@ import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost
class MainApplication : Application(), ReactApplication {
override val reactHost: ReactHost by lazy {
val packages = PackageList(this).packages.toMutableList()
// ✅ Add your custom package HERE (Kotlin syntax)
packages.add(NativeModulesPackage())
getDefaultReactHost(
context = applicationContext,
packageList =
PackageList(this).packages.apply {
// Packages that cannot be autolinked yet can be added manually here, for example:
// add(MyReactNativePackage())
},
packageList = packages,
)
}

View File

@@ -0,0 +1,19 @@
package com.lynkeduppro
import com.facebook.react.bridge.ReactApplicationContext
import com.facebook.react.bridge.ReactContextBaseJavaModule
import com.facebook.react.bridge.ReactMethod
import com.facebook.react.bridge.Promise
class MyNativeModule(private val reactContext: ReactApplicationContext)
: ReactContextBaseJavaModule(reactContext) {
override fun getName(): String {
return "MyNativeModule" // JS module name
}
@ReactMethod
fun greet(name: String, promise: Promise) {
promise.resolve("Hello $name from Android(Kotlin)!")
}
}

View File

@@ -0,0 +1,19 @@
package com.lynkeduppro
import com.facebook.react.ReactPackage
import com.facebook.react.bridge.NativeModule
import com.facebook.react.bridge.ReactApplicationContext
import com.facebook.react.uimanager.ViewManager
class NativeModulesPackage : ReactPackage {
override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
return listOf(
MyNativeModule(reactContext)
)
}
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
return emptyList()
}
}