package expo.modules.webviewversion import androidx.webkit.WebViewCompat import expo.modules.kotlin.modules.Module import expo.modules.kotlin.modules.ModuleDefinition import expo.modules.kotlin.records.Field import expo.modules.kotlin.records.Record class ExpoWebviewVersionModule : Module() { override fun definition() = ModuleDefinition { Name("ExpoWebviewVersion") Function("getWebviewVersion") { val context = appContext.currentActivity if (context != null) { try { val packageInfo = WebViewCompat.getCurrentWebViewPackage(context) return@Function ExpoWebviewVersionResponse(result = true, packageName = packageInfo?.packageName, versionName = packageInfo?.versionName) } catch (e: Exception) { return@Function ExpoWebviewVersionResponse(result = false) } } else { return@Function ExpoWebviewVersionResponse(result = false) } } } } data class ExpoWebviewVersionResponse( @Field val result: Boolean = false, @Field val packageName: String? = null, @Field val versionName: String? = null ) : Record