diff --git a/packages/url_launcher/url_launcher/CHANGELOG.md b/packages/url_launcher/url_launcher/CHANGELOG.md index 0cab10180cd8..3097a2122ae1 100644 --- a/packages/url_launcher/url_launcher/CHANGELOG.md +++ b/packages/url_launcher/url_launcher/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.4.3 + +* Fixed the launchUniversalLinkIos method. + ## 5.4.2 * Make the pedantic dev_dependency explicit. diff --git a/packages/url_launcher/url_launcher/example/lib/main.dart b/packages/url_launcher/url_launcher/example/lib/main.dart index 00ab6c5b047d..f7d90c4bef65 100644 --- a/packages/url_launcher/url_launcher/example/lib/main.dart +++ b/packages/url_launcher/url_launcher/example/lib/main.dart @@ -91,15 +91,15 @@ class _MyHomePageState extends State { } Future _launchUniversalLinkIos(String url) async { - if (await canLaunch('https://youtube.com')) { + if (await canLaunch(url)) { final bool nativeAppLaunchSucceeded = await launch( - 'https://youtube.com', + url, forceSafariVC: false, universalLinksOnly: true, ); if (!nativeAppLaunchSucceeded) { await launch( - 'https://youtube.com', + url, forceSafariVC: true, ); } diff --git a/packages/url_launcher/url_launcher/example/pubspec.yaml b/packages/url_launcher/url_launcher/example/pubspec.yaml index 065693e1432c..1eb3e603696f 100644 --- a/packages/url_launcher/url_launcher/example/pubspec.yaml +++ b/packages/url_launcher/url_launcher/example/pubspec.yaml @@ -12,6 +12,8 @@ dev_dependencies: flutter_driver: sdk: flutter pedantic: ^1.8.0 + mockito: ^4.1.1 + plugin_platform_interface: ^1.0.0 flutter: uses-material-design: true diff --git a/packages/url_launcher/url_launcher/example/test/url_launcher_example_test.dart b/packages/url_launcher/url_launcher/example/test/url_launcher_example_test.dart new file mode 100644 index 000000000000..41b9f6f5ec6c --- /dev/null +++ b/packages/url_launcher/url_launcher/example/test/url_launcher_example_test.dart @@ -0,0 +1,45 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:flutter/material.dart'; +import 'package:mockito/mockito.dart'; +import 'package:plugin_platform_interface/plugin_platform_interface.dart'; +import 'package:url_launcher_platform_interface/url_launcher_platform_interface.dart'; +import 'package:url_launcher_example/main.dart'; + +void main() { + final MockUrlLauncher mock = MockUrlLauncher(); + UrlLauncherPlatform.instance = mock; + + testWidgets('Can open URLs', (WidgetTester tester) async { + await tester.pumpWidget(MyApp()); + const String defaultUrl = 'https://www.cylog.org/headers/'; + when(mock.canLaunch(defaultUrl)).thenAnswer((_) => Future.value(true)); + const Map defaultHeaders = { + 'my_header_key': 'my_header_value' + }; + verifyNever(mock.launch(defaultUrl, + useSafariVC: false, + useWebView: false, + enableDomStorage: false, + enableJavaScript: false, + universalLinksOnly: false, + headers: defaultHeaders)); + + Finder browserlaunchBtn = + find.widgetWithText(RaisedButton, 'Launch in browser'); + expect(browserlaunchBtn, findsOneWidget); + await tester.tap(browserlaunchBtn); + + verify(mock.launch(defaultUrl, + useSafariVC: false, + useWebView: false, + enableDomStorage: false, + enableJavaScript: false, + universalLinksOnly: false, + headers: defaultHeaders)) + .called(1); + }); +} + +class MockUrlLauncher extends Mock + with MockPlatformInterfaceMixin + implements UrlLauncherPlatform {} diff --git a/packages/url_launcher/url_launcher/pubspec.yaml b/packages/url_launcher/url_launcher/pubspec.yaml index ba929709b01e..f0568e0029c0 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.4.2 +version: 5.4.3 flutter: plugin: diff --git a/packages/url_launcher/url_launcher_macos/CHANGELOG.md b/packages/url_launcher/url_launcher_macos/CHANGELOG.md index 6ecac5bd9faf..fc2448201e22 100644 --- a/packages/url_launcher/url_launcher_macos/CHANGELOG.md +++ b/packages/url_launcher/url_launcher_macos/CHANGELOG.md @@ -1,3 +1,7 @@ +# 0.0.1+5 + +* Fixed the launchUniversalLinkIos method. + # 0.0.1+4 * Make the pedantic dev_dependency explicit. diff --git a/packages/url_launcher/url_launcher_macos/example/lib/main.dart b/packages/url_launcher/url_launcher_macos/example/lib/main.dart index f079bb272663..b5cce7482d07 100644 --- a/packages/url_launcher/url_launcher_macos/example/lib/main.dart +++ b/packages/url_launcher/url_launcher_macos/example/lib/main.dart @@ -90,15 +90,15 @@ class _MyHomePageState extends State { } Future _launchUniversalLinkIos(String url) async { - if (await canLaunch('https://youtube.com')) { + if (await canLaunch(url)) { final bool nativeAppLaunchSucceeded = await launch( - 'https://youtube.com', + url, forceSafariVC: false, universalLinksOnly: true, ); if (!nativeAppLaunchSucceeded) { await launch( - 'https://youtube.com', + url, forceSafariVC: true, ); } diff --git a/packages/url_launcher/url_launcher_macos/pubspec.yaml b/packages/url_launcher/url_launcher_macos/pubspec.yaml index 3f6d5e04b026..04a6b33f1e68 100644 --- a/packages/url_launcher/url_launcher_macos/pubspec.yaml +++ b/packages/url_launcher/url_launcher_macos/pubspec.yaml @@ -1,6 +1,6 @@ name: url_launcher_macos description: macOS implementation of the url_launcher plugin. -version: 0.0.1+4 +version: 0.0.1+5 homepage: https://github.com/flutter/plugins/tree/master/packages/url_launcher/url_launcher_macos flutter: