diff --git a/.idea/libraries/Dart_Packages.xml b/.idea/libraries/Dart_Packages.xml
deleted file mode 100644
index 460f26e..0000000
--- a/.idea/libraries/Dart_Packages.xml
+++ /dev/null
@@ -1,236 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Flutter_Plugins.xml b/.idea/libraries/Flutter_Plugins.xml
index b0f6971..53449da 100644
--- a/.idea/libraries/Flutter_Plugins.xml
+++ b/.idea/libraries/Flutter_Plugins.xml
@@ -1,6 +1,8 @@
-
+
+
+
diff --git a/.idea/permission_handler-10.0.0.iml b/.idea/permission_handler-10.0.0.iml
index f568d74..48f6974 100644
--- a/.idea/permission_handler-10.0.0.iml
+++ b/.idea/permission_handler-10.0.0.iml
@@ -13,6 +13,6 @@
-
+
\ No newline at end of file
diff --git a/.packages b/.packages
new file mode 100644
index 0000000..e01f980
--- /dev/null
+++ b/.packages
@@ -0,0 +1,54 @@
+# This file is deprecated. Tools should instead consume
+# `.dart_tool/package_config.json`.
+#
+# For more info see: https://dart.dev/go/dot-packages-deprecation
+#
+# Generated by pub on 2022-08-29 15:46:02.034246.
+_fe_analyzer_shared:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/_fe_analyzer_shared-46.0.0/lib/
+analyzer:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/analyzer-4.6.0/lib/
+args:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/args-2.3.1/lib/
+async:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/async-2.8.2/lib/
+boolean_selector:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/boolean_selector-2.1.0/lib/
+build:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/build-2.3.0/lib/
+built_collection:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/built_collection-5.1.1/lib/
+built_value:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/built_value-8.4.1/lib/
+characters:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/characters-1.2.0/lib/
+charcode:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/charcode-1.3.1/lib/
+clock:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/clock-1.1.0/lib/
+code_builder:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/code_builder-4.2.0/lib/
+collection:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/collection-1.16.0/lib/
+convert:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/convert-3.0.2/lib/
+crypto:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/crypto-3.0.2/lib/
+dart_style:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/dart_style-2.2.3/lib/
+fake_async:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/fake_async-1.3.0/lib/
+file:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/file-6.1.4/lib/
+fixnum:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/fixnum-1.0.1/lib/
+flutter:file:///Users/datang/fvm/versions/3.0.0/packages/flutter/lib/
+flutter_lints:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/flutter_lints-1.0.4/lib/
+flutter_test:file:///Users/datang/fvm/versions/3.0.0/packages/flutter_test/lib/
+glob:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/glob-2.1.0/lib/
+lints:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/lints-1.0.1/lib/
+logging:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/logging-1.0.2/lib/
+matcher:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/matcher-0.12.11/lib/
+material_color_utilities:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/material_color_utilities-0.1.4/lib/
+meta:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/meta-1.7.0/lib/
+mockito:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/mockito-5.3.0/lib/
+package_config:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/package_config-2.1.0/lib/
+path:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/path-1.8.1/lib/
+permission_handler_android:file:///Users/datang/.pub-cache/git/permission_handler_android-6e22c532c20c16192ae84e510f31d3d1ebb4ed65/lib/
+permission_handler_platform_interface:file:///Users/datang/.pub-cache/git/permission_handler_platform_interface-605264044635d2cda6514796754eb1c531d0845e/lib/
+plugin_platform_interface:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/plugin_platform_interface-2.1.2/lib/
+pub_semver:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/pub_semver-2.1.1/lib/
+sky_engine:file:///Users/datang/fvm/versions/3.0.0/bin/cache/pkg/sky_engine/lib/
+source_gen:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/source_gen-1.2.2/lib/
+source_span:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/source_span-1.8.2/lib/
+stack_trace:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/stack_trace-1.10.0/lib/
+stream_channel:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/stream_channel-2.1.0/lib/
+string_scanner:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/string_scanner-1.1.0/lib/
+term_glyph:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/term_glyph-1.2.0/lib/
+test_api:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/test_api-0.4.9/lib/
+typed_data:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/typed_data-1.3.1/lib/
+vector_math:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/vector_math-2.1.2/lib/
+watcher:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/watcher-1.0.1/lib/
+yaml:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/yaml-3.1.1/lib/
+permission_handler:lib/
diff --git a/example/.flutter-plugins b/example/.flutter-plugins
new file mode 100644
index 0000000..76b9c9b
--- /dev/null
+++ b/example/.flutter-plugins
@@ -0,0 +1,10 @@
+# This is a generated file; do not edit or check into version control.
+permission_handler=/Users/datang/permission_handler/
+permission_handler_android=/Users/datang/.pub-cache/git/permission_handler_android-6e22c532c20c16192ae84e510f31d3d1ebb4ed65/
+url_launcher=/Users/datang/.pub-cache/hosted/pub.dartlang.org/url_launcher-6.1.5/
+url_launcher_android=/Users/datang/.pub-cache/hosted/pub.dartlang.org/url_launcher_android-6.0.17/
+url_launcher_ios=/Users/datang/.pub-cache/hosted/pub.dartlang.org/url_launcher_ios-6.0.17/
+url_launcher_linux=/Users/datang/.pub-cache/hosted/pub.dartlang.org/url_launcher_linux-3.0.1/
+url_launcher_macos=/Users/datang/.pub-cache/hosted/pub.dartlang.org/url_launcher_macos-3.0.1/
+url_launcher_web=/Users/datang/.pub-cache/hosted/pub.dartlang.org/url_launcher_web-2.0.13/
+url_launcher_windows=/Users/datang/.pub-cache/hosted/pub.dartlang.org/url_launcher_windows-3.0.1/
diff --git a/example/.flutter-plugins-dependencies b/example/.flutter-plugins-dependencies
new file mode 100644
index 0000000..5c18b1f
--- /dev/null
+++ b/example/.flutter-plugins-dependencies
@@ -0,0 +1 @@
+{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"url_launcher_ios","path":"/Users/datang/.pub-cache/hosted/pub.dartlang.org/url_launcher_ios-6.0.17/","native_build":true,"dependencies":[]}],"android":[{"name":"permission_handler_android","path":"/Users/datang/.pub-cache/git/permission_handler_android-6e22c532c20c16192ae84e510f31d3d1ebb4ed65/","native_build":true,"dependencies":[]},{"name":"url_launcher_android","path":"/Users/datang/.pub-cache/hosted/pub.dartlang.org/url_launcher_android-6.0.17/","native_build":true,"dependencies":[]}],"macos":[{"name":"url_launcher_macos","path":"/Users/datang/.pub-cache/hosted/pub.dartlang.org/url_launcher_macos-3.0.1/","native_build":true,"dependencies":[]}],"linux":[{"name":"url_launcher_linux","path":"/Users/datang/.pub-cache/hosted/pub.dartlang.org/url_launcher_linux-3.0.1/","native_build":true,"dependencies":[]}],"windows":[{"name":"url_launcher_windows","path":"/Users/datang/.pub-cache/hosted/pub.dartlang.org/url_launcher_windows-3.0.1/","native_build":true,"dependencies":[]}],"web":[{"name":"url_launcher_web","path":"/Users/datang/.pub-cache/hosted/pub.dartlang.org/url_launcher_web-2.0.13/","dependencies":[]}]},"dependencyGraph":[{"name":"permission_handler","dependencies":["permission_handler_android"]},{"name":"permission_handler_android","dependencies":[]},{"name":"url_launcher","dependencies":["url_launcher_android","url_launcher_ios","url_launcher_linux","url_launcher_macos","url_launcher_web","url_launcher_windows"]},{"name":"url_launcher_android","dependencies":[]},{"name":"url_launcher_ios","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]}],"date_created":"2022-08-29 15:46:24.786149","version":"3.0.0"}
\ No newline at end of file
diff --git a/example/.packages b/example/.packages
new file mode 100644
index 0000000..a815361
--- /dev/null
+++ b/example/.packages
@@ -0,0 +1,43 @@
+# This file is deprecated. Tools should instead consume
+# `.dart_tool/package_config.json`.
+#
+# For more info see: https://dart.dev/go/dot-packages-deprecation
+#
+# Generated by pub on 2022-08-29 15:46:24.657824.
+async:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/async-2.8.2/lib/
+baseflow_plugin_template:file:///Users/datang/.pub-cache/git/baseflow_plugin_template-0695ef43c098d75efffe5fd6212390b853f05bf7/lib/
+boolean_selector:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/boolean_selector-2.1.0/lib/
+characters:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/characters-1.2.0/lib/
+charcode:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/charcode-1.3.1/lib/
+clock:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/clock-1.1.0/lib/
+collection:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/collection-1.16.0/lib/
+fake_async:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/fake_async-1.3.0/lib/
+flutter:file:///Users/datang/fvm/versions/3.0.0/packages/flutter/lib/
+flutter_test:file:///Users/datang/fvm/versions/3.0.0/packages/flutter_test/lib/
+flutter_web_plugins:file:///Users/datang/fvm/versions/3.0.0/packages/flutter_web_plugins/lib/
+js:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/js-0.6.4/lib/
+matcher:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/matcher-0.12.11/lib/
+material_color_utilities:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/material_color_utilities-0.1.4/lib/
+meta:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/meta-1.7.0/lib/
+path:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/path-1.8.1/lib/
+permission_handler:../lib/
+permission_handler_android:file:///Users/datang/.pub-cache/git/permission_handler_android-6e22c532c20c16192ae84e510f31d3d1ebb4ed65/lib/
+permission_handler_platform_interface:file:///Users/datang/.pub-cache/git/permission_handler_platform_interface-605264044635d2cda6514796754eb1c531d0845e/lib/
+plugin_platform_interface:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/plugin_platform_interface-2.1.2/lib/
+sky_engine:file:///Users/datang/fvm/versions/3.0.0/bin/cache/pkg/sky_engine/lib/
+source_span:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/source_span-1.8.2/lib/
+stack_trace:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/stack_trace-1.10.0/lib/
+stream_channel:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/stream_channel-2.1.0/lib/
+string_scanner:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/string_scanner-1.1.0/lib/
+term_glyph:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/term_glyph-1.2.0/lib/
+test_api:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/test_api-0.4.9/lib/
+url_launcher:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/url_launcher-6.1.5/lib/
+url_launcher_android:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/url_launcher_android-6.0.17/lib/
+url_launcher_ios:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/url_launcher_ios-6.0.17/lib/
+url_launcher_linux:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/url_launcher_linux-3.0.1/lib/
+url_launcher_macos:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/url_launcher_macos-3.0.1/lib/
+url_launcher_platform_interface:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/url_launcher_platform_interface-2.1.0/lib/
+url_launcher_web:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/url_launcher_web-2.0.13/lib/
+url_launcher_windows:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/url_launcher_windows-3.0.1/lib/
+vector_math:file:///Users/datang/.pub-cache/hosted/pub.dartlang.org/vector_math-2.1.2/lib/
+permission_handler_example:lib/
diff --git a/example/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java b/example/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java
new file mode 100644
index 0000000..16c14c8
--- /dev/null
+++ b/example/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java
@@ -0,0 +1,29 @@
+package io.flutter.plugins;
+
+import androidx.annotation.Keep;
+import androidx.annotation.NonNull;
+import io.flutter.Log;
+
+import io.flutter.embedding.engine.FlutterEngine;
+
+/**
+ * Generated file. Do not edit.
+ * This file is generated by the Flutter tool based on the
+ * plugins that support the Android platform.
+ */
+@Keep
+public final class GeneratedPluginRegistrant {
+ private static final String TAG = "GeneratedPluginRegistrant";
+ public static void registerWith(@NonNull FlutterEngine flutterEngine) {
+ try {
+ flutterEngine.getPlugins().add(new com.baseflow.permissionhandler.PermissionHandlerPlugin());
+ } catch(Exception e) {
+ Log.e(TAG, "Error registering plugin permission_handler_android, com.baseflow.permissionhandler.PermissionHandlerPlugin", e);
+ }
+ try {
+ flutterEngine.getPlugins().add(new io.flutter.plugins.urllauncher.UrlLauncherPlugin());
+ } catch(Exception e) {
+ Log.e(TAG, "Error registering plugin url_launcher_android, io.flutter.plugins.urllauncher.UrlLauncherPlugin", e);
+ }
+ }
+}
diff --git a/example/android/local.properties b/example/android/local.properties
new file mode 100644
index 0000000..d28bda3
--- /dev/null
+++ b/example/android/local.properties
@@ -0,0 +1,2 @@
+sdk.dir=/Users/datang/Library/Android/sdk
+flutter.sdk=/Users/datang/fvm/versions/3.0.0
\ No newline at end of file
diff --git a/example/ios/Flutter/Generated.xcconfig b/example/ios/Flutter/Generated.xcconfig
new file mode 100644
index 0000000..60c5b3b
--- /dev/null
+++ b/example/ios/Flutter/Generated.xcconfig
@@ -0,0 +1,13 @@
+// This is a generated file; do not edit or check into version control.
+FLUTTER_ROOT=/Users/datang/fvm/versions/3.0.0
+FLUTTER_APPLICATION_PATH=/Users/datang/permission_handler/example
+COCOAPODS_PARALLEL_CODE_SIGN=true
+FLUTTER_TARGET=lib/main.dart
+FLUTTER_BUILD_DIR=build
+FLUTTER_BUILD_NAME=1.0.0
+FLUTTER_BUILD_NUMBER=1
+EXCLUDED_ARCHS[sdk=iphonesimulator*]=i386
+DART_OBFUSCATION=false
+TRACK_WIDGET_CREATION=false
+TREE_SHAKE_ICONS=false
+PACKAGE_CONFIG=.dart_tool/package_config.json
diff --git a/example/ios/Flutter/flutter_export_environment.sh b/example/ios/Flutter/flutter_export_environment.sh
new file mode 100755
index 0000000..674290b
--- /dev/null
+++ b/example/ios/Flutter/flutter_export_environment.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+# This is a generated file; do not edit or check into version control.
+export "FLUTTER_ROOT=/Users/datang/fvm/versions/3.0.0"
+export "FLUTTER_APPLICATION_PATH=/Users/datang/permission_handler/example"
+export "COCOAPODS_PARALLEL_CODE_SIGN=true"
+export "FLUTTER_TARGET=lib/main.dart"
+export "FLUTTER_BUILD_DIR=build"
+export "FLUTTER_BUILD_NAME=1.0.0"
+export "FLUTTER_BUILD_NUMBER=1"
+export "DART_OBFUSCATION=false"
+export "TRACK_WIDGET_CREATION=false"
+export "TREE_SHAKE_ICONS=false"
+export "PACKAGE_CONFIG=.dart_tool/package_config.json"
diff --git a/example/ios/Runner/GeneratedPluginRegistrant.h b/example/ios/Runner/GeneratedPluginRegistrant.h
new file mode 100644
index 0000000..7a89092
--- /dev/null
+++ b/example/ios/Runner/GeneratedPluginRegistrant.h
@@ -0,0 +1,19 @@
+//
+// Generated file. Do not edit.
+//
+
+// clang-format off
+
+#ifndef GeneratedPluginRegistrant_h
+#define GeneratedPluginRegistrant_h
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface GeneratedPluginRegistrant : NSObject
++ (void)registerWithRegistry:(NSObject*)registry;
+@end
+
+NS_ASSUME_NONNULL_END
+#endif /* GeneratedPluginRegistrant_h */
diff --git a/example/ios/Runner/GeneratedPluginRegistrant.m b/example/ios/Runner/GeneratedPluginRegistrant.m
new file mode 100644
index 0000000..6c4ed8a
--- /dev/null
+++ b/example/ios/Runner/GeneratedPluginRegistrant.m
@@ -0,0 +1,21 @@
+//
+// Generated file. Do not edit.
+//
+
+// clang-format off
+
+#import "GeneratedPluginRegistrant.h"
+
+#if __has_include()
+#import
+#else
+@import url_launcher_ios;
+#endif
+
+@implementation GeneratedPluginRegistrant
+
++ (void)registerWithRegistry:(NSObject*)registry {
+ [FLTURLLauncherPlugin registerWithRegistrar:[registry registrarForPlugin:@"FLTURLLauncherPlugin"]];
+}
+
+@end
diff --git a/example/pubspec.lock b/example/pubspec.lock
new file mode 100644
index 0000000..379bc28
--- /dev/null
+++ b/example/pubspec.lock
@@ -0,0 +1,256 @@
+# Generated by pub
+# See https://dart.dev/tools/pub/glossary#lockfile
+packages:
+ async:
+ dependency: transitive
+ description:
+ name: async
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.8.2"
+ baseflow_plugin_template:
+ dependency: "direct main"
+ description:
+ path: "."
+ ref: "v2.1.0"
+ resolved-ref: "0695ef43c098d75efffe5fd6212390b853f05bf7"
+ url: "https://github.com/Baseflow/baseflow_plugin_template.git"
+ source: git
+ version: "2.1.0"
+ boolean_selector:
+ dependency: transitive
+ description:
+ name: boolean_selector
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.1.0"
+ characters:
+ dependency: transitive
+ description:
+ name: characters
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.2.0"
+ charcode:
+ dependency: transitive
+ description:
+ name: charcode
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.3.1"
+ clock:
+ dependency: transitive
+ description:
+ name: clock
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.1.0"
+ collection:
+ dependency: transitive
+ description:
+ name: collection
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.16.0"
+ fake_async:
+ dependency: transitive
+ description:
+ name: fake_async
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.3.0"
+ flutter:
+ dependency: "direct main"
+ description: flutter
+ source: sdk
+ version: "0.0.0"
+ flutter_test:
+ dependency: "direct dev"
+ description: flutter
+ source: sdk
+ version: "0.0.0"
+ flutter_web_plugins:
+ dependency: transitive
+ description: flutter
+ source: sdk
+ version: "0.0.0"
+ js:
+ dependency: transitive
+ description:
+ name: js
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.6.4"
+ matcher:
+ dependency: transitive
+ description:
+ name: matcher
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.12.11"
+ material_color_utilities:
+ dependency: transitive
+ description:
+ name: material_color_utilities
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.1.4"
+ meta:
+ dependency: transitive
+ description:
+ name: meta
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.7.0"
+ path:
+ dependency: transitive
+ description:
+ name: path
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.8.1"
+ permission_handler:
+ dependency: "direct dev"
+ description:
+ path: ".."
+ relative: true
+ source: path
+ version: "10.0.0"
+ permission_handler_android:
+ dependency: transitive
+ description:
+ path: "."
+ ref: HEAD
+ resolved-ref: "6e22c532c20c16192ae84e510f31d3d1ebb4ed65"
+ url: "https://git.oa00.com/austin_dai/permission_handler_android.git"
+ source: git
+ version: "10.0.0"
+ permission_handler_platform_interface:
+ dependency: transitive
+ description:
+ path: "."
+ ref: HEAD
+ resolved-ref: "605264044635d2cda6514796754eb1c531d0845e"
+ url: "https://git.oa00.com/austin_dai/permission_handler_platform_interface.git"
+ source: git
+ version: "3.7.0"
+ plugin_platform_interface:
+ dependency: transitive
+ description:
+ name: plugin_platform_interface
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.1.2"
+ sky_engine:
+ dependency: transitive
+ description: flutter
+ source: sdk
+ version: "0.0.99"
+ source_span:
+ dependency: transitive
+ description:
+ name: source_span
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.8.2"
+ stack_trace:
+ dependency: transitive
+ description:
+ name: stack_trace
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.10.0"
+ stream_channel:
+ dependency: transitive
+ description:
+ name: stream_channel
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.1.0"
+ string_scanner:
+ dependency: transitive
+ description:
+ name: string_scanner
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.1.0"
+ term_glyph:
+ dependency: transitive
+ description:
+ name: term_glyph
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.2.0"
+ test_api:
+ dependency: transitive
+ description:
+ name: test_api
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.4.9"
+ url_launcher:
+ dependency: "direct dev"
+ description:
+ name: url_launcher
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "6.1.5"
+ url_launcher_android:
+ dependency: transitive
+ description:
+ name: url_launcher_android
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "6.0.17"
+ url_launcher_ios:
+ dependency: transitive
+ description:
+ name: url_launcher_ios
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "6.0.17"
+ url_launcher_linux:
+ dependency: transitive
+ description:
+ name: url_launcher_linux
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "3.0.1"
+ url_launcher_macos:
+ dependency: transitive
+ description:
+ name: url_launcher_macos
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "3.0.1"
+ url_launcher_platform_interface:
+ dependency: transitive
+ description:
+ name: url_launcher_platform_interface
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.1.0"
+ url_launcher_web:
+ dependency: transitive
+ description:
+ name: url_launcher_web
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.0.13"
+ url_launcher_windows:
+ dependency: transitive
+ description:
+ name: url_launcher_windows
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "3.0.1"
+ vector_math:
+ dependency: transitive
+ description:
+ name: vector_math
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.1.2"
+sdks:
+ dart: ">=2.17.0-0 <3.0.0"
+ flutter: ">=2.10.0"
diff --git a/example/windows/flutter/ephemeral/.plugin_symlinks/url_launcher_windows b/example/windows/flutter/ephemeral/.plugin_symlinks/url_launcher_windows
new file mode 120000
index 0000000..fa33772
--- /dev/null
+++ b/example/windows/flutter/ephemeral/.plugin_symlinks/url_launcher_windows
@@ -0,0 +1 @@
+/Users/datang/.pub-cache/hosted/pub.dartlang.org/url_launcher_windows-3.0.1/
\ No newline at end of file
diff --git a/example/windows/flutter/generated_plugin_registrant.cc b/example/windows/flutter/generated_plugin_registrant.cc
index a0d0bbe..4f78848 100644
--- a/example/windows/flutter/generated_plugin_registrant.cc
+++ b/example/windows/flutter/generated_plugin_registrant.cc
@@ -6,12 +6,9 @@
#include "generated_plugin_registrant.h"
-#include
#include
void RegisterPlugins(flutter::PluginRegistry* registry) {
- PermissionHandlerWindowsPluginRegisterWithRegistrar(
- registry->GetRegistrarForPlugin("PermissionHandlerWindowsPlugin"));
UrlLauncherWindowsRegisterWithRegistrar(
registry->GetRegistrarForPlugin("UrlLauncherWindows"));
}
diff --git a/example/windows/flutter/generated_plugins.cmake b/example/windows/flutter/generated_plugins.cmake
index ca38d21..88b22e5 100644
--- a/example/windows/flutter/generated_plugins.cmake
+++ b/example/windows/flutter/generated_plugins.cmake
@@ -3,10 +3,12 @@
#
list(APPEND FLUTTER_PLUGIN_LIST
- permission_handler_windows
url_launcher_windows
)
+list(APPEND FLUTTER_FFI_PLUGIN_LIST
+)
+
set(PLUGIN_BUNDLED_LIBRARIES)
foreach(plugin ${FLUTTER_PLUGIN_LIST})
@@ -15,3 +17,8 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST})
list(APPEND PLUGIN_BUNDLED_LIBRARIES $)
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
endforeach(plugin)
+
+foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})
+ add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin})
+ list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})
+endforeach(ffi_plugin)
diff --git a/pubspec.lock b/pubspec.lock
new file mode 100644
index 0000000..60b53fd
--- /dev/null
+++ b/pubspec.lock
@@ -0,0 +1,333 @@
+# Generated by pub
+# See https://dart.dev/tools/pub/glossary#lockfile
+packages:
+ _fe_analyzer_shared:
+ dependency: transitive
+ description:
+ name: _fe_analyzer_shared
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "46.0.0"
+ analyzer:
+ dependency: transitive
+ description:
+ name: analyzer
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "4.6.0"
+ args:
+ dependency: transitive
+ description:
+ name: args
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.3.1"
+ async:
+ dependency: transitive
+ description:
+ name: async
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.8.2"
+ boolean_selector:
+ dependency: transitive
+ description:
+ name: boolean_selector
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.1.0"
+ build:
+ dependency: transitive
+ description:
+ name: build
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.3.0"
+ built_collection:
+ dependency: transitive
+ description:
+ name: built_collection
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "5.1.1"
+ built_value:
+ dependency: transitive
+ description:
+ name: built_value
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "8.4.1"
+ characters:
+ dependency: transitive
+ description:
+ name: characters
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.2.0"
+ charcode:
+ dependency: transitive
+ description:
+ name: charcode
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.3.1"
+ clock:
+ dependency: transitive
+ description:
+ name: clock
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.1.0"
+ code_builder:
+ dependency: transitive
+ description:
+ name: code_builder
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "4.2.0"
+ collection:
+ dependency: transitive
+ description:
+ name: collection
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.16.0"
+ convert:
+ dependency: transitive
+ description:
+ name: convert
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "3.0.2"
+ crypto:
+ dependency: transitive
+ description:
+ name: crypto
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "3.0.2"
+ dart_style:
+ dependency: transitive
+ description:
+ name: dart_style
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.2.3"
+ fake_async:
+ dependency: transitive
+ description:
+ name: fake_async
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.3.0"
+ file:
+ dependency: transitive
+ description:
+ name: file
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "6.1.4"
+ fixnum:
+ dependency: transitive
+ description:
+ name: fixnum
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.0.1"
+ flutter:
+ dependency: "direct main"
+ description: flutter
+ source: sdk
+ version: "0.0.0"
+ flutter_lints:
+ dependency: "direct dev"
+ description:
+ name: flutter_lints
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.0.4"
+ flutter_test:
+ dependency: "direct dev"
+ description: flutter
+ source: sdk
+ version: "0.0.0"
+ glob:
+ dependency: transitive
+ description:
+ name: glob
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.1.0"
+ lints:
+ dependency: transitive
+ description:
+ name: lints
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.0.1"
+ logging:
+ dependency: transitive
+ description:
+ name: logging
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.0.2"
+ matcher:
+ dependency: transitive
+ description:
+ name: matcher
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.12.11"
+ material_color_utilities:
+ dependency: transitive
+ description:
+ name: material_color_utilities
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.1.4"
+ meta:
+ dependency: "direct main"
+ description:
+ name: meta
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.7.0"
+ mockito:
+ dependency: "direct dev"
+ description:
+ name: mockito
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "5.3.0"
+ package_config:
+ dependency: transitive
+ description:
+ name: package_config
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.1.0"
+ path:
+ dependency: transitive
+ description:
+ name: path
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.8.1"
+ permission_handler_android:
+ dependency: "direct main"
+ description:
+ path: "."
+ ref: HEAD
+ resolved-ref: "6e22c532c20c16192ae84e510f31d3d1ebb4ed65"
+ url: "https://git.oa00.com/austin_dai/permission_handler_android.git"
+ source: git
+ version: "10.0.0"
+ permission_handler_platform_interface:
+ dependency: "direct main"
+ description:
+ path: "."
+ ref: HEAD
+ resolved-ref: "605264044635d2cda6514796754eb1c531d0845e"
+ url: "https://git.oa00.com/austin_dai/permission_handler_platform_interface.git"
+ source: git
+ version: "3.7.0"
+ plugin_platform_interface:
+ dependency: "direct dev"
+ description:
+ name: plugin_platform_interface
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.1.2"
+ pub_semver:
+ dependency: transitive
+ description:
+ name: pub_semver
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.1.1"
+ sky_engine:
+ dependency: transitive
+ description: flutter
+ source: sdk
+ version: "0.0.99"
+ source_gen:
+ dependency: transitive
+ description:
+ name: source_gen
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.2.2"
+ source_span:
+ dependency: transitive
+ description:
+ name: source_span
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.8.2"
+ stack_trace:
+ dependency: transitive
+ description:
+ name: stack_trace
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.10.0"
+ stream_channel:
+ dependency: transitive
+ description:
+ name: stream_channel
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.1.0"
+ string_scanner:
+ dependency: transitive
+ description:
+ name: string_scanner
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.1.0"
+ term_glyph:
+ dependency: transitive
+ description:
+ name: term_glyph
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.2.0"
+ test_api:
+ dependency: transitive
+ description:
+ name: test_api
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.4.9"
+ typed_data:
+ dependency: transitive
+ description:
+ name: typed_data
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.3.1"
+ vector_math:
+ dependency: transitive
+ description:
+ name: vector_math
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.1.2"
+ watcher:
+ dependency: transitive
+ description:
+ name: watcher
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.0.1"
+ yaml:
+ dependency: transitive
+ description:
+ name: yaml
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "3.1.1"
+sdks:
+ dart: ">=2.17.0 <3.0.0"
+ flutter: ">=2.8.0"
diff --git a/pubspec.yaml b/pubspec.yaml
index d425cdd..92b153c 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -12,10 +12,6 @@ flutter:
platforms:
android:
default_package: permission_handler_android
- ios:
- default_package: permission_handler_apple
- windows:
- default_package: permission_handler_windows
dependencies:
flutter:
@@ -24,9 +20,9 @@ dependencies:
permission_handler_android:
git:
url: https://git.oa00.com/austin_dai/permission_handler_android.git
- permission_handler_apple: ^9.0.2
- permission_handler_windows: ^0.1.0
- permission_handler_platform_interface: ^3.7.0
+ permission_handler_platform_interface:
+ git:
+ url: https://git.oa00.com/austin_dai/permission_handler_platform_interface.git
dev_dependencies:
flutter_lints: ^1.0.4