feat(android): aggiungi permesso INTERNET e canale nativo per aprire URL

Aggiunge INTERNET permission e la query ACTION_VIEW/https richiesta da
Android 11+ per la package visibility. Espone il MethodChannel
'com.davide.biteplan/launcher' che lancia un Intent.ACTION_VIEW con
l'URL ricevuto, senza dipendere da plugin Flutter esterni.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-04 16:17:43 +02:00
parent 481ca86487
commit 0f1f585b4a
2 changed files with 30 additions and 1 deletions
+5
View File
@@ -1,5 +1,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<application <application
android:label="BitePlan" android:label="BitePlan"
android:name="${applicationName}" android:name="${applicationName}"
@@ -42,5 +43,9 @@
<action android:name="android.intent.action.PROCESS_TEXT"/> <action android:name="android.intent.action.PROCESS_TEXT"/>
<data android:mimeType="text/plain"/> <data android:mimeType="text/plain"/>
</intent> </intent>
<intent>
<action android:name="android.intent.action.VIEW"/>
<data android:scheme="https"/>
</intent>
</queries> </queries>
</manifest> </manifest>
@@ -1,5 +1,29 @@
package com.davide.biteplan package com.davide.biteplan
import android.content.Intent
import android.net.Uri
import io.flutter.embedding.android.FlutterActivity 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<String>("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()
}
}
}
}