From 88acaf49dd882d092095be8c38b3223bdd0ec974 Mon Sep 17 00:00:00 2001 From: Maurits van Beusekom Date: Fri, 25 Sep 2020 00:17:48 +0200 Subject: [PATCH] [url_launcher] Document why canLaunch can return false on Android API 30 (#3040) This PR adds extra documentation to the canLaunch method, explaining that (from Android API 30) false is returned when the package visibility is not managed properly. Starting from Android API 30, apps should explicitly list which other apps it wants to query or interact with, by specifying them in the AndroidManifest.xml file. More information can be found in the Manage package visibility article in the Android documentation. --- packages/url_launcher/url_launcher/CHANGELOG.md | 4 ++++ packages/url_launcher/url_launcher/lib/url_launcher.dart | 5 +++++ packages/url_launcher/url_launcher/pubspec.yaml | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/url_launcher/url_launcher/CHANGELOG.md b/packages/url_launcher/url_launcher/CHANGELOG.md index c3f176ab3c84..2b499a55427d 100644 --- a/packages/url_launcher/url_launcher/CHANGELOG.md +++ b/packages/url_launcher/url_launcher/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.7.2 + +* Add API documentation explaining the [canLaunch] method returns `false` if package visibility (Android API 30) is not managed correctly. + ## 5.7.1 * Keep handling deprecated Android v1 classes for backward compatibility. diff --git a/packages/url_launcher/url_launcher/lib/url_launcher.dart b/packages/url_launcher/url_launcher/lib/url_launcher.dart index bc171062093c..ccc6833f0941 100644 --- a/packages/url_launcher/url_launcher/lib/url_launcher.dart +++ b/packages/url_launcher/url_launcher/lib/url_launcher.dart @@ -109,6 +109,11 @@ Future launch( /// Checks whether the specified URL can be handled by some app installed on the /// device. +/// +/// On Android (from API 30), [canLaunch] will return `false` when the required +/// visibility configuration is not provided in the AndroidManifest.xml file. +/// For more information see the [Managing package visibility](https://developer.android.com/training/basics/intents/package-visibility) +/// article in the Android docs. Future canLaunch(String urlString) async { if (urlString == null) { return false; diff --git a/packages/url_launcher/url_launcher/pubspec.yaml b/packages/url_launcher/url_launcher/pubspec.yaml index a3c5427ace30..0b6a50f8b8fd 100644 --- a/packages/url_launcher/url_launcher/pubspec.yaml +++ b/packages/url_launcher/url_launcher/pubspec.yaml @@ -2,7 +2,7 @@ name: url_launcher description: Flutter plugin for launching a URL on Android and iOS. Supports web, phone, SMS, and email schemes. homepage: https://github.com/flutter/plugins/tree/master/packages/url_launcher/url_launcher -version: 5.7.1 +version: 5.7.2 flutter: plugin: