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

[webview_flutter] Add download listener to Android webview #4322

Merged

Conversation

renefloor
Copy link
Contributor

@renefloor renefloor commented Sep 8, 2021

This PR adds a download listener to the Android webview and sends that url to the navigation delegate. The Dart code can in turn manage the download. By (bad) luck this is already the way it works on iOS, so this PR makes the behaviour between Android and iOS the same.

Fixes flutter/flutter#89657

I also tested these changes in a complete app.

Pre-launch Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I read the Tree Hygiene wiki page, which explains my responsibilities.
  • I read and followed the relevant style guides and ran the auto-formatter. (Note that unlike the flutter/flutter repo, the flutter/plugins repo does use dart format.)
  • I signed the CLA.
  • The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
  • I listed at least one issue that this PR fixes in the description above.
  • 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 updated/added relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making or feature I am adding, or Hixie said the PR is test exempt.
  • All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@google-cla google-cla bot added the cla: yes label Sep 8, 2021
@github-actions github-actions bot added p: webview_flutter Edits files for a webview_flutter plugin platform-android labels Sep 8, 2021
Comment on lines 16 to 18
public void setWebView(WebView webView){
this.webView = webView;
}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm not really happy that the webview depends on the downloadlistener and the other way around, but this is also how the FlutterWebChromeClient works. This is less visible as that just uses a property of the parent class.

@renefloor renefloor requested review from mvanbeusekom and stuartmorgan and removed request for mvanbeusekom September 8, 2021 15:07
Copy link
Contributor

@mvanbeusekom mvanbeusekom left a comment

Choose a reason for hiding this comment

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

LGTM

@mvanbeusekom mvanbeusekom added the waiting for tree to go green (Use "autosubmit") This PR is approved and tested, but waiting for the tree to be green to land. label Sep 10, 2021
@fluttergithubbot fluttergithubbot merged commit 5e4b5e0 into flutter:master Sep 10, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Sep 10, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Sep 10, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Sep 10, 2021
NickalasB added a commit to NickalasB/plugins that referenced this pull request Sep 10, 2021
* master:
  [webview_flutter] Add download listener to Android webview (flutter#4322)
  [video_player] add support for content-uri based videos (flutter#4330)
  [webview_flutter] Implementation of the webview_flutter_platform_interface package (flutter#4302)
  [camera] Bump minimum Flutter version and iOS deployment target (flutter#4327)
  [video_player] interface: add support for content-uri based videos (android only) (flutter#4307)
  Ignore unnecessary_import in legacy analysis options (flutter#4129)
  [ci] Enable the new Windows targets (flutter#4325)

# Conflicts:
#	packages/webview_flutter/webview_flutter/android/src/main/java/io/flutter/plugins/webviewflutter/FlutterWebView.java
#	packages/webview_flutter/webview_flutter/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewBuilder.java
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Sep 10, 2021
fotiDim pushed a commit to fotiDim/plugins that referenced this pull request Sep 13, 2021
amantoux pushed a commit to amantoux/plugins that referenced this pull request Sep 27, 2021
KyleFin pushed a commit to KyleFin/plugins that referenced this pull request Dec 21, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
cla: yes p: webview_flutter Edits files for a webview_flutter plugin platform-android waiting for tree to go green (Use "autosubmit") This PR is approved and tested, but waiting for the tree to be green to land.
Projects
None yet
3 participants