-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Closed
flutter/plugins
#4366Labels
P3Issues that are less important to the Flutter projectIssues that are less important to the Flutter projectp: webviewThe WebView pluginThe WebView pluginpackageflutter/packages repository. See also p: labels.flutter/packages repository. See also p: labels.
Description
Use case
Migrate the "webview_flutter" package to the federated plugin architecture. This would result in the following benefits:
- Makes it easier to add support for additional platforms (specifically desktop support e.g. Windows, macOS and Linux);
- Allows for easier separation of concerns especially when different platforms require different configuration settings;
- The federated architecture also makes it easier to write automated tests and guard the API;
- Confirms to the architecture of most other Flutter plugins, making it easier for developers to understand the project layout and contribute to the project.
Proposal
To migrate the in_app_purchase package to federated architecture we should take the following steps:
- Move the
webview_flutterinto its own subdirectory ("webview_flutter/webview_flutter") [webview_flutter] Move webview_flutter to webview_flutter/webview_flutter plugins#4152; - Create the
webview_flutter_platform_interfacepackage (see PR [webview_flutter] Implementation of the webview_flutter_platform_interface package plugins#4302);- Copy the
LICENSEfile from thewebview_flutterpackage; - Add a
CHANGELOG.mdfile; - Define a
pubspec.yamlfile; - Create a
README.mdfile; - Define the platform interface in
webview_flutter_platform.dart; - Implement the default implementation in
method_channel_webview_flutter.dart;
- Copy the
- Create an Android implementation of the
webview_flutter_platform_interfacein a separatewebview_flutter_androidpackage (see PR [webview_flutter] Extract Android implementation into a separate package plugins#4343); - Create an iOS implementation of the
webview_flutter_platform_interfacein a separatewebview_flutter_darwinpackage (see PR [webview_flutter] Extract WKWebView implementation into a separate package plugins#4345); - Refactor package
webview_flutterto use thewebview_flutter_androidandwebview_flutter_darwinpackages.- Make sure to remove exclusion of
webview_flutter_androidandwebview_flutter_wkwebviewfrom exclude_all_plugins_app.yaml configuration file.
- Make sure to remove exclusion of
jcviau
Metadata
Metadata
Assignees
Labels
P3Issues that are less important to the Flutter projectIssues that are less important to the Flutter projectp: webviewThe WebView pluginThe WebView pluginpackageflutter/packages repository. See also p: labels.flutter/packages repository. See also p: labels.