diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index bbc0ef6..1942b2e 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,5 +1,6 @@ + + + + + diff --git a/android/app/src/main/kotlin/com/davide/biteplan/MainActivity.kt b/android/app/src/main/kotlin/com/davide/biteplan/MainActivity.kt index c87d893..d14c341 100644 --- a/android/app/src/main/kotlin/com/davide/biteplan/MainActivity.kt +++ b/android/app/src/main/kotlin/com/davide/biteplan/MainActivity.kt @@ -1,5 +1,29 @@ package com.davide.biteplan +import android.content.Intent +import android.net.Uri import io.flutter.embedding.android.FlutterActivity +import io.flutter.embedding.engine.FlutterEngine +import io.flutter.plugin.common.MethodChannel -class MainActivity : FlutterActivity() +class MainActivity : FlutterActivity() { + private val channel = "com.davide.biteplan/launcher" + + override fun configureFlutterEngine(flutterEngine: FlutterEngine) { + super.configureFlutterEngine(flutterEngine) + MethodChannel(flutterEngine.dartExecutor.binaryMessenger, channel) + .setMethodCallHandler { call, result -> + if (call.method == "launch") { + val url = call.argument("url") + if (url != null) { + startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url))) + result.success(null) + } else { + result.error("INVALID_URL", "URL is null", null) + } + } else { + result.notImplemented() + } + } + } +}