Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.

[url_launcher] Launches only mailto urls in same window on iOS devices #2740

Merged
merged 10 commits into from
May 16, 2020

Conversation

tugorez
Copy link
Contributor

@tugorez tugorez commented May 7, 2020

Description

Previously on #2656 we started launching all urls on the _top context (only on iOS PWA). It seems that this was a partial fix because non-PWA web apps are having a similar issue: after opening a mailto url and trying to get back to the app's context they are seeing a blank window. This behaviour is caused by the browser that opens a new tab, detects the url is one that could be handled by an email application and finally opening the email application without closing that new opened tab (leaving it with blank content). This PR assumes three things:

  1. This problem only happens on iOS devices
  2. This problem only happens with mailto urls
  3. This problem is fixed by forcing the browser to open the mailto urls on the current window, on the _top context.

Related Issues

flutter/flutter#51461

Checklist

Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
  • All existing and new tests are passing.
  • I updated/added relevant documentation (doc comments with ///).
  • The analyzer (flutter analyze) does not report any problems on my PR.
  • I read and followed the Flutter Style Guide.
  • The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
  • I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy.
  • I updated CHANGELOG.md to add a description of the change.
  • I signed the CLA.
  • I am willing to follow-up on review comments in a timely manner.

Breaking Change

Does your PR require plugin users to manually update their apps to accommodate your change?

  • Yes, this is a breaking change (please indicate a breaking change in CHANGELOG.md and increment major revision).
  • No, this is not a breaking change.

@tugorez tugorez changed the title [url_launcher][WIP] Launches mailto urls in same window on iOS devices [url_launcher] Launches mailto urls in same window on iOS devices May 11, 2020
@tugorez tugorez changed the title [url_launcher] Launches mailto urls in same window on iOS devices [url_launcher] Launches only mailto urls in same window on iOS devices May 11, 2020
@tugorez
Copy link
Contributor Author

tugorez commented May 11, 2020

Please take in account that this issue seems to be happening only on iOS therefore I tried to change the behaviour only on those devices. To achieve that I had to rely on window.navigator.platform. My only concern is that I couldn't find an standar nor an official resource that listed all posible values. The best resource I could find was this stackoverflow answer.

@ditman ditman self-requested a review May 11, 2020 21:18
@ditman ditman self-assigned this May 11, 2020
@ditman
Copy link
Member

ditman commented May 12, 2020

(I've sent tugorez some changes in a separate PR to this branch)

Copy link
Member

@ditman ditman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Let's merge this once the tree goes green.

@ditman ditman merged commit f78a5df into flutter:master May 16, 2020
mgonzalezc pushed a commit to mgonzalezc/plugins that referenced this pull request May 19, 2020
* master: (96 commits)
  Update README.md (flutter#2768)
  [url_launcher_web] Launch mailto urls in same window in Safari (flutter#2740)
  update README with enableJavaScript info (flutter#2766)
  Run publish ci check on master (flutter#2764)
  [image_picker] Add documentation for Android external storage permissions (flutter#2765)
  [package_info] add support for macos to package_info plugin (flutter#2618)
  fixed detach from engine logic (flutter#2759)
  [url_launcher] Initialize previousAutomaticSystemUiAdjustment in launch (flutter#2757)
  [google_maps_flutter] add todo on skipped test. (flutter#2752)
  [google_maps_flutter] use `WaitUntilTouchesEndedPolicy` to fix the cameraIdle not called issue on iOS (flutter#2746)
  Use Xvfb for Linux desktop tests (flutter#2750)
  update lower dart bound to 2.1.0 (flutter#2751)
  [camera] Update lower bound of dart dependency to 2.1.0. (flutter#2749)
  [battery] update dart deps lower bound to 2.1.0 (flutter#2748)
  [android_alarm_manager] update dart deps lower bound to 2.1.0 (flutter#2747)
  [url_launcher] Add web to example app. (flutter#2736)
  [in_app_purchase] update docs to warn about `completePurchase` (flutter#2739)
  [video_player] upgraded video_player to use pigeon (flutter#2544)
  [video_player]: fixed platform_interface unit tests (flutter#2745)
  [video_player]: added test class to fix video_player unit tests (flutter#2744)
  ...

# Conflicts:
#	packages/quick_actions/ios/Classes/FLTQuickActionsPlugin.m
KevinTheGray added a commit to KevinTheGray/plugins that referenced this pull request May 19, 2020
…-player-plugin-fix

* commit '25a585dfeef6d2dc224fd0dddee327372de63782':
  [image_picker] iOS: fix bug, sometimes double click cancel button will crash (flutter#2625)
  [google_maps_flutter] Add liteModeEnabled option (flutter#2449)
  Update README.md (flutter#2768)
  [url_launcher_web] Launch mailto urls in same window in Safari (flutter#2740)
  update README with enableJavaScript info (flutter#2766)
  Run publish ci check on master (flutter#2764)
  [image_picker] Add documentation for Android external storage permissions (flutter#2765)
EdwinRomelta pushed a commit to EdwinRomelta/plugins that referenced this pull request Jun 11, 2020
…er#2740)

This uses package:platform_detect to determine whether the app is running in Safari or not.

https://pub.dev/packages/platform_detect

Co-authored-by: David Iglesias Teixeira <[email protected]>
jorgefspereira pushed a commit to jorgefspereira/plugins_flutter that referenced this pull request Oct 10, 2020
…er#2740)

This uses package:platform_detect to determine whether the app is running in Safari or not.

https://pub.dev/packages/platform_detect

Co-authored-by: David Iglesias Teixeira <[email protected]>
FlutterSu pushed a commit to FlutterSu/flutter-plugins that referenced this pull request Nov 20, 2020
…er#2740)

This uses package:platform_detect to determine whether the app is running in Safari or not.

https://pub.dev/packages/platform_detect

Co-authored-by: David Iglesias Teixeira <[email protected]>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants