mirror of
https://github.com/wanghongenpin/proxypin.git
synced 2026-03-15 04:23:17 +08:00
Remove file_selector dependency
This commit is contained in:
@@ -20,7 +20,6 @@ import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:date_format/date_format.dart';
|
||||
import 'package:file_selector/file_selector.dart';
|
||||
import 'package:proxypin/network/bin/configuration.dart';
|
||||
import 'package:proxypin/network/http/http.dart';
|
||||
import 'package:proxypin/network/util/logger.dart';
|
||||
@@ -29,6 +28,7 @@ import 'package:proxypin/utils/files.dart';
|
||||
import 'package:proxypin/utils/har.dart';
|
||||
import 'package:proxypin/utils/listenable_list.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:share_plus/share_plus.dart';
|
||||
|
||||
///历史存储
|
||||
///@Author WangHongEn
|
||||
|
||||
@@ -18,16 +18,14 @@ import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:desktop_multi_window/desktop_multi_window.dart';
|
||||
import 'package:file_picker/file_picker.dart';
|
||||
import 'package:file_selector/file_selector.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:proxypin/network/bin/server.dart';
|
||||
import 'package:proxypin/network/components/rewrite/request_rewrite_manager.dart';
|
||||
import 'package:proxypin/network/components/rewrite/rewrite_rule.dart';
|
||||
import 'package:proxypin/network/components/script_manager.dart';
|
||||
import 'package:proxypin/network/http/http.dart';
|
||||
import 'package:proxypin/network/util/lang.dart';
|
||||
import 'package:proxypin/network/util/logger.dart';
|
||||
import 'package:proxypin/ui/component/cert_hash.dart';
|
||||
import 'package:proxypin/ui/component/device.dart';
|
||||
@@ -41,7 +39,6 @@ import 'package:proxypin/ui/desktop/request/request_editor.dart';
|
||||
import 'package:proxypin/ui/desktop/toolbar/setting/request_rewrite.dart';
|
||||
import 'package:proxypin/ui/desktop/toolbar/setting/script.dart';
|
||||
import 'package:proxypin/utils/platform.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
import 'package:window_manager/window_manager.dart';
|
||||
|
||||
@@ -216,38 +213,6 @@ void registerMethodHandler() {
|
||||
return getApplicationSupportDirectory().then((it) => it.path);
|
||||
}
|
||||
|
||||
if (call.method == 'getSaveLocation') {
|
||||
String? path = (await getSaveLocation(suggestedName: call.arguments))?.path;
|
||||
if (Platform.isWindows) windowManager.blur();
|
||||
return path;
|
||||
}
|
||||
|
||||
if (call.method == 'saveFile') {
|
||||
String? path = (await FilePicker.platform.saveFile(fileName: call.arguments));
|
||||
return path;
|
||||
}
|
||||
|
||||
if (call.method == 'openFile') {
|
||||
List<String> extensions =
|
||||
call.arguments is List ? Lists.convertList<String>(call.arguments) : <String>[call.arguments];
|
||||
|
||||
XTypeGroup typeGroup =
|
||||
XTypeGroup(extensions: extensions, uniformTypeIdentifiers: Platform.isMacOS ? const ['public.item'] : null);
|
||||
final XFile? file = await openFile(acceptedTypeGroups: <XTypeGroup>[typeGroup]);
|
||||
if (Platform.isWindows) windowManager.blur();
|
||||
return file?.path;
|
||||
}
|
||||
|
||||
if (call.method == 'pickFile') {
|
||||
List<String> extensions =
|
||||
call.arguments is List ? Lists.convertList<String>(call.arguments) : <String>[call.arguments];
|
||||
|
||||
var file =
|
||||
(await FilePicker.platform.pickFiles(allowedExtensions: extensions, type: FileType.custom))?.files.single;
|
||||
if (Platform.isWindows) windowManager.blur();
|
||||
return file?.path;
|
||||
}
|
||||
|
||||
if (call.method == 'launchUrl') {
|
||||
return launchUrl(Uri.parse(call.arguments));
|
||||
}
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:desktop_multi_window/desktop_multi_window.dart';
|
||||
import 'package:file_picker/file_picker.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
@@ -203,9 +202,10 @@ class _QrDecodeState extends State<_QrDecode> with AutomaticKeepAliveClientMixin
|
||||
}
|
||||
|
||||
if (Platforms.isDesktop()) {
|
||||
String? file = await DesktopMultiWindow.invokeMethod(0, 'pickFile', <String>['jpg', 'png', 'jpeg']);
|
||||
if (widget.windowId != null) WindowController.fromWindowId(widget.windowId!).show();
|
||||
return file;
|
||||
//<String>['jpg', 'png', 'jpeg']
|
||||
FilePickerResult? result = await FilePicker.platform.pickFiles(type: FileType.image);
|
||||
if (result == null || result.files.isEmpty) return null;
|
||||
return result.files.single.path;
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
@@ -18,7 +18,7 @@ import 'dart:io';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:date_format/date_format.dart';
|
||||
import 'package:file_selector/file_selector.dart';
|
||||
import 'package:file_picker/file_picker.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
import 'package:flutter_toastr/flutter_toastr.dart';
|
||||
@@ -233,14 +233,14 @@ class _HistoryListState extends State<_HistoryListWidget> {
|
||||
|
||||
//导入har
|
||||
import() async {
|
||||
const XTypeGroup typeGroup = XTypeGroup(label: 'Har', extensions: <String>['har']);
|
||||
final XFile? file = await openFile(acceptedTypeGroups: <XTypeGroup>[typeGroup]);
|
||||
if (file == null) {
|
||||
final results = await FilePicker.platform.pickFiles(type: FileType.custom, allowedExtensions: ['har']);
|
||||
if (results == null || results.files.isEmpty) {
|
||||
return;
|
||||
}
|
||||
|
||||
var file = results.files.first;
|
||||
try {
|
||||
var historyItem = await storage.addHarFile(file);
|
||||
var historyItem = await storage.addHarFile(file.xFile);
|
||||
setState(() {
|
||||
toRequestsView(historyItem);
|
||||
FlutterToastr.show(localizations.importSuccess, context);
|
||||
@@ -370,14 +370,15 @@ class _HistoryListState extends State<_HistoryListWidget> {
|
||||
//文件名称
|
||||
String fileName =
|
||||
'${item.name.contains("ProxyPin") ? '' : 'ProxyPin'}${item.name}.har'.replaceAll(" ", "_").replaceAll(":", "_");
|
||||
final FileSaveLocation? result = await getSaveLocation(suggestedName: fileName);
|
||||
if (result == null) {
|
||||
|
||||
final String? path = await FilePicker.platform.saveFile(fileName: fileName);
|
||||
if (path == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
//获取请求
|
||||
List<HttpRequest> requests = await storage.getRequests(item);
|
||||
var file = await File(result.path).create();
|
||||
var file = await File(path).create();
|
||||
await Har.writeFile(requests, file, title: item.name);
|
||||
if (mounted) FlutterToastr.show(localizations.exportSuccess, context);
|
||||
Future.delayed(const Duration(seconds: 30), () => item.requests = null);
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
import 'dart:collection';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:file_selector/file_selector.dart';
|
||||
import 'package:file_picker/file_picker.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_desktop_context_menu/flutter_desktop_context_menu.dart';
|
||||
@@ -170,8 +170,8 @@ class DesktopRequestListState extends State<DesktopRequestListWidget> with Autom
|
||||
|
||||
///导出
|
||||
export(String fileName) async {
|
||||
final FileSaveLocation? result = await getSaveLocation(suggestedName: fileName);
|
||||
if (result == null) {
|
||||
var path = await FilePicker.platform.saveFile(fileName: fileName);
|
||||
if (path == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -179,7 +179,7 @@ class DesktopRequestListState extends State<DesktopRequestListWidget> with Autom
|
||||
List<HttpRequest>? requests = currentView();
|
||||
if (requests == null) return;
|
||||
|
||||
var file = await File(result.path).create();
|
||||
var file = await File(path).create();
|
||||
await Har.writeFile(requests, file, title: fileName);
|
||||
|
||||
if (mounted) FlutterToastr.show(AppLocalizations.of(context)!.exportSuccess, context);
|
||||
|
||||
@@ -17,7 +17,7 @@ import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:desktop_multi_window/desktop_multi_window.dart';
|
||||
import 'package:file_selector/file_selector.dart';
|
||||
import 'package:file_picker/file_picker.dart';
|
||||
import 'package:flutter/gestures.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
@@ -154,14 +154,16 @@ class RequestRewriteState extends State<RequestRewriteWidget> {
|
||||
|
||||
//导入js
|
||||
import() async {
|
||||
String? file = await DesktopMultiWindow.invokeMethod(0, 'openFile', 'config');
|
||||
WindowController.fromWindowId(widget.windowId).show();
|
||||
if (file == null) {
|
||||
FilePickerResult? result =
|
||||
await FilePicker.platform.pickFiles(type: FileType.custom, allowedExtensions: ['config', 'json']);
|
||||
if (result == null || result.files.isEmpty) {
|
||||
return;
|
||||
}
|
||||
|
||||
var file = result.files.single;
|
||||
|
||||
try {
|
||||
List json = jsonDecode(await File(file).readAsString());
|
||||
List json = jsonDecode(await File(file.path!).readAsString());
|
||||
for (var item in json) {
|
||||
var rule = RequestRewriteRule.formJson(item);
|
||||
var items = (item['items'] as List).map((e) => RewriteItem.fromJson(e)).toList();
|
||||
@@ -350,9 +352,8 @@ class _RequestRuleListState extends State<RequestRuleList> {
|
||||
if (indexes.isEmpty) return;
|
||||
|
||||
String fileName = 'proxypin-rewrites.config';
|
||||
String? saveLocation = await DesktopMultiWindow.invokeMethod(0, 'getSaveLocation', fileName);
|
||||
WindowController.fromWindowId(widget.windowId).show();
|
||||
if (saveLocation == null) {
|
||||
var path = await FilePicker.platform.saveFile(fileName: fileName);
|
||||
if (path == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -365,8 +366,7 @@ class _RequestRuleListState extends State<RequestRuleList> {
|
||||
list.add(json);
|
||||
}
|
||||
|
||||
final XFile xFile = XFile.fromData(utf8.encode(jsonEncode(list)), mimeType: 'json');
|
||||
await xFile.saveTo(saveLocation);
|
||||
await File(path).writeAsBytes(utf8.encode(jsonEncode(list)));
|
||||
if (mounted) FlutterToastr.show(localizations.exportSuccess, context);
|
||||
}
|
||||
|
||||
@@ -521,7 +521,7 @@ class _RewriteRuleEditState extends State<RewriteRuleEdit> {
|
||||
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10.0)),
|
||||
content: Container(
|
||||
width: 550,
|
||||
constraints: const BoxConstraints(minHeight: 200,maxHeight: 550),
|
||||
constraints: const BoxConstraints(minHeight: 200, maxHeight: 550),
|
||||
child: Form(
|
||||
key: formKey,
|
||||
child: Column(
|
||||
|
||||
@@ -18,7 +18,7 @@ import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:desktop_multi_window/desktop_multi_window.dart';
|
||||
import 'package:file_selector/file_selector.dart';
|
||||
import 'package:file_picker/file_picker.dart';
|
||||
import 'package:flutter/gestures.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
@@ -151,14 +151,13 @@ class _ScriptWidgetState extends State<ScriptWidget> {
|
||||
|
||||
//导入js
|
||||
import() async {
|
||||
String? file = await DesktopMultiWindow.invokeMethod(0, 'openFile', 'json');
|
||||
WindowController.fromWindowId(widget.windowId).show();
|
||||
if (file == null) {
|
||||
FilePickerResult? result = await FilePicker.platform.pickFiles(type: FileType.custom, allowedExtensions: ['json']);
|
||||
if (result == null || result.files.isEmpty) {
|
||||
return;
|
||||
}
|
||||
|
||||
var file = result.files.single.path;
|
||||
try {
|
||||
var json = jsonDecode(await File(file).readAsString());
|
||||
var json = jsonDecode(await File(file!).readAsString());
|
||||
var scriptManager = (await ScriptManager.instance);
|
||||
if (json is List<dynamic>) {
|
||||
for (var item in json) {
|
||||
@@ -616,9 +615,8 @@ class _ScriptListState extends State<ScriptList> {
|
||||
if (indexes.isEmpty) return;
|
||||
//文件名称
|
||||
String fileName = 'proxypin-scripts.json';
|
||||
String? saveLocation = await DesktopMultiWindow.invokeMethod(0, 'getSaveLocation', fileName);
|
||||
WindowController.fromWindowId(widget.windowId).show();
|
||||
if (saveLocation == null) {
|
||||
String? path = await FilePicker.platform.saveFile(fileName: fileName);
|
||||
if (path == null) {
|
||||
return;
|
||||
}
|
||||
var scriptManager = await ScriptManager.instance;
|
||||
@@ -631,8 +629,7 @@ class _ScriptListState extends State<ScriptList> {
|
||||
json.add(map);
|
||||
}
|
||||
|
||||
final XFile xFile = XFile.fromData(utf8.encode(jsonEncode(json)), mimeType: 'json');
|
||||
await xFile.saveTo(saveLocation);
|
||||
await File(path).writeAsBytes(utf8.encode(jsonEncode(json)));
|
||||
if (mounted) FlutterToastr.show(localizations.exportSuccess, context);
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:date_format/date_format.dart';
|
||||
import 'package:file_selector/file_selector.dart';
|
||||
import 'package:file_picker/file_picker.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
@@ -156,15 +156,13 @@ class _MobileHistoryState extends State<MobileHistory> {
|
||||
|
||||
//导入har
|
||||
import(HistoryStorage storage) async {
|
||||
const XTypeGroup typeGroup =
|
||||
XTypeGroup(label: 'har', extensions: <String>['har'], uniformTypeIdentifiers: ["public.item"]);
|
||||
final XFile? file = await openFile(acceptedTypeGroups: <XTypeGroup>[typeGroup]);
|
||||
if (file == null) {
|
||||
FilePickerResult? result = await FilePicker.platform.pickFiles(type: FileType.custom, allowedExtensions: ['har']);
|
||||
if (result == null || result.files.isEmpty) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
var historyItem = await storage.addHarFile(file);
|
||||
var historyItem = await storage.addHarFile(result.files.single.xFile);
|
||||
setState(() {
|
||||
toRequestsView(historyItem, storage);
|
||||
FlutterToastr.show(localizations.importSuccess, context);
|
||||
|
||||
@@ -15,8 +15,9 @@
|
||||
*/
|
||||
import 'dart:collection';
|
||||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:file_selector/file_selector.dart';
|
||||
import 'package:file_picker/file_picker.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
@@ -135,11 +136,11 @@ class _DomainFilterState extends State<DomainFilter> {
|
||||
|
||||
//导入
|
||||
import() async {
|
||||
final XFile? file = await openFile();
|
||||
if (file == null) {
|
||||
FilePickerResult? result = await FilePicker.platform.pickFiles(type: FileType.custom, allowedExtensions: ['config', 'json']);
|
||||
if (result == null || result.files.isEmpty) {
|
||||
return;
|
||||
}
|
||||
|
||||
var file = File(result.files.single.path!);
|
||||
try {
|
||||
List json = jsonDecode(await file.readAsString());
|
||||
for (var item in json) {
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
import 'dart:collection';
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:file_selector/file_selector.dart';
|
||||
import 'package:file_picker/file_picker.dart';
|
||||
import 'package:flutter/gestures.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
@@ -98,10 +98,12 @@ class _MobileRequestRewriteState extends State<MobileRequestRewrite> {
|
||||
|
||||
//导入
|
||||
import() async {
|
||||
final XFile? file = await openFile();
|
||||
if (file == null) {
|
||||
FilePickerResult? result =
|
||||
await FilePicker.platform.pickFiles(type: FileType.custom, allowedExtensions: ['config', 'json']);
|
||||
if (result == null || result.files.isEmpty) {
|
||||
return;
|
||||
}
|
||||
var file = result.files.single.xFile;
|
||||
|
||||
try {
|
||||
List json = jsonDecode(utf8.decode(await file.readAsBytes()));
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
*/
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:file_selector/file_selector.dart';
|
||||
import 'package:file_picker/file_picker.dart';
|
||||
import 'package:flutter/gestures.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_code_editor/flutter_code_editor.dart';
|
||||
@@ -118,11 +118,11 @@ class _MobileScriptState extends State<MobileScript> {
|
||||
|
||||
//导入js
|
||||
import() async {
|
||||
final XFile? file = await openFile();
|
||||
if (file == null) {
|
||||
FilePickerResult? result = await FilePicker.platform.pickFiles(type: FileType.custom, allowedExtensions: ['json']);
|
||||
if (result == null || result.files.isEmpty) {
|
||||
return;
|
||||
}
|
||||
|
||||
var file = result.files.single.xFile;
|
||||
try {
|
||||
var scriptManager = (await ScriptManager.instance);
|
||||
var json = jsonDecode(utf8.decode(await file.readAsBytes()));
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
#include "generated_plugin_registrant.h"
|
||||
|
||||
#include <desktop_multi_window/desktop_multi_window_plugin.h>
|
||||
#include <file_selector_linux/file_selector_plugin.h>
|
||||
#include <flutter_desktop_context_menu/flutter_desktop_context_menu_plugin.h>
|
||||
#include <flutter_js/flutter_js_plugin.h>
|
||||
#include <proxy_manager/proxy_manager_plugin.h>
|
||||
@@ -19,9 +18,6 @@ void fl_register_plugins(FlPluginRegistry* registry) {
|
||||
g_autoptr(FlPluginRegistrar) desktop_multi_window_registrar =
|
||||
fl_plugin_registry_get_registrar_for_plugin(registry, "DesktopMultiWindowPlugin");
|
||||
desktop_multi_window_plugin_register_with_registrar(desktop_multi_window_registrar);
|
||||
g_autoptr(FlPluginRegistrar) file_selector_linux_registrar =
|
||||
fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin");
|
||||
file_selector_plugin_register_with_registrar(file_selector_linux_registrar);
|
||||
g_autoptr(FlPluginRegistrar) flutter_desktop_context_menu_registrar =
|
||||
fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterDesktopContextMenuPlugin");
|
||||
flutter_desktop_context_menu_plugin_register_with_registrar(flutter_desktop_context_menu_registrar);
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
|
||||
list(APPEND FLUTTER_PLUGIN_LIST
|
||||
desktop_multi_window
|
||||
file_selector_linux
|
||||
flutter_desktop_context_menu
|
||||
flutter_js
|
||||
proxy_manager
|
||||
|
||||
@@ -7,7 +7,6 @@ import Foundation
|
||||
|
||||
import desktop_multi_window
|
||||
import device_info_plus
|
||||
import file_selector_macos
|
||||
import flutter_desktop_context_menu
|
||||
import flutter_js
|
||||
import path_provider_foundation
|
||||
@@ -21,7 +20,6 @@ import window_manager
|
||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||
FlutterMultiWindowPlugin.register(with: registry.registrar(forPlugin: "FlutterMultiWindowPlugin"))
|
||||
DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
|
||||
FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin"))
|
||||
FlutterDesktopContextMenuPlugin.register(with: registry.registrar(forPlugin: "FlutterDesktopContextMenuPlugin"))
|
||||
FlutterJsPlugin.register(with: registry.registrar(forPlugin: "FlutterJsPlugin"))
|
||||
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
|
||||
|
||||
16
pubspec.yaml
16
pubspec.yaml
@@ -23,27 +23,29 @@ dependencies:
|
||||
url: https://gitee.com/wanghongenpin/flutter-plugins.git
|
||||
path: packages/desktop_multi_window
|
||||
path_provider: ^2.1.4
|
||||
url_launcher: ^6.3.1
|
||||
file_picker: ^8.1.3
|
||||
proxy_manager: ^0.0.3
|
||||
permission_handler: ^11.3.1
|
||||
qr_flutter: ^4.1.0
|
||||
flutter_qr_reader: ^1.0.5
|
||||
flutter_toastr: ^1.0.3
|
||||
share_plus: ^10.1.1
|
||||
brotli: ^0.6.0
|
||||
flutter_js: ^0.8.1
|
||||
flutter_code_editor:
|
||||
git:
|
||||
url: https://github.com/wanghongenpin/flutter-code-editor.git
|
||||
ref: secure-keyboard
|
||||
flutter_desktop_context_menu: ^0.2.0
|
||||
file_picker: ^8.1.3
|
||||
file_selector: ^1.0.3
|
||||
win32audio: ^1.3.1
|
||||
device_info_plus: ^11.1.0
|
||||
shared_preferences: ^2.3.2
|
||||
image_pickers: ^2.0.5+2
|
||||
|
||||
qr_flutter: ^4.1.0
|
||||
flutter_qr_reader: ^1.0.5
|
||||
|
||||
brotli: ^0.6.0
|
||||
win32audio: ^1.3.1
|
||||
|
||||
url_launcher: ^6.3.1
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
#include "generated_plugin_registrant.h"
|
||||
|
||||
#include <desktop_multi_window/desktop_multi_window_plugin.h>
|
||||
#include <file_selector_windows/file_selector_windows.h>
|
||||
#include <flutter_desktop_context_menu/flutter_desktop_context_menu_plugin.h>
|
||||
#include <flutter_js/flutter_js_plugin.h>
|
||||
#include <permission_handler_windows/permission_handler_windows_plugin.h>
|
||||
@@ -21,8 +20,6 @@
|
||||
void RegisterPlugins(flutter::PluginRegistry* registry) {
|
||||
DesktopMultiWindowPluginRegisterWithRegistrar(
|
||||
registry->GetRegistrarForPlugin("DesktopMultiWindowPlugin"));
|
||||
FileSelectorWindowsRegisterWithRegistrar(
|
||||
registry->GetRegistrarForPlugin("FileSelectorWindows"));
|
||||
FlutterDesktopContextMenuPluginRegisterWithRegistrar(
|
||||
registry->GetRegistrarForPlugin("FlutterDesktopContextMenuPlugin"));
|
||||
FlutterJsPluginRegisterWithRegistrar(
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
|
||||
list(APPEND FLUTTER_PLUGIN_LIST
|
||||
desktop_multi_window
|
||||
file_selector_windows
|
||||
flutter_desktop_context_menu
|
||||
flutter_js
|
||||
permission_handler_windows
|
||||
|
||||
Reference in New Issue
Block a user