From 802663abced0b909daa74bceb3d9da29ff261af1 Mon Sep 17 00:00:00 2001
From: pichillilorenzo <pichillilorenzo@gmail.com>
Date: Tue, 18 Sep 2018 03:07:12 +0200
Subject: [PATCH] updated Swift code, using storyboard for iOS, code cleanup,
 updated iOS options

---
 .gradle/4.4.1/fileChanges/last-build.bin      | Bin 0 -> 1 bytes
 .gradle/4.4.1/fileHashes/fileHashes.lock      | Bin 0 -> 17 bytes
 .gradle/4.4.1/taskHistory/taskHistory.lock    | Bin 0 -> 17 bytes
 .../buildOutputCleanup.lock                   | Bin 0 -> 17 bytes
 .gradle/buildOutputCleanup/cache.properties   |   2 +
 .idea/workspace.xml                           | 526 +++++++----
 README.md                                     |   2 +-
 android/build.gradle                          |   4 +
 .../flutter_inappbrowser/InAppBrowser.java    |   1 +
 example/android/build.gradle                  |   2 +-
 example/flutter_plugin/.gitignore             |   8 +
 example/flutter_plugin/CHANGELOG.md           |   3 +
 example/flutter_plugin/LICENSE                |   1 +
 example/flutter_plugin/README.md              |  10 +
 example/flutter_plugin/android/.gitignore     |   8 +
 example/flutter_plugin/android/build.gradle   |  34 +
 .../flutter_plugin/android/gradle.properties  |   1 +
 .../flutter_plugin/android/settings.gradle    |   1 +
 .../android/src/main/AndroidManifest.xml      |   3 +
 .../flutterplugin/FlutterPlugin.java          |  25 +
 example/flutter_plugin/example/.gitignore     |  71 ++
 example/flutter_plugin/example/.metadata      |   8 +
 example/flutter_plugin/example/README.md      |   8 +
 .../example/android/app/build.gradle          |  61 ++
 .../android/app/src/main/AndroidManifest.xml  |  39 +
 .../flutterpluginexample/MainActivity.java    |  13 +
 .../main/res/drawable/launch_background.xml   |  12 +
 .../src/main/res/mipmap-hdpi/ic_launcher.png  | Bin 0 -> 544 bytes
 .../src/main/res/mipmap-mdpi/ic_launcher.png  | Bin 0 -> 442 bytes
 .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes
 .../main/res/mipmap-xxhdpi/ic_launcher.png    | Bin 0 -> 1031 bytes
 .../main/res/mipmap-xxxhdpi/ic_launcher.png   | Bin 0 -> 1443 bytes
 .../app/src/main/res/values/styles.xml        |   8 +
 .../example/android/build.gradle              |  29 +
 .../example/android/gradle.properties         |   1 +
 .../gradle/wrapper/gradle-wrapper.properties  |   6 +
 .../example/android/settings.gradle           |  15 +
 .../ios/Flutter/AppFrameworkInfo.plist        |  26 +
 .../example/ios/Flutter/Debug.xcconfig        |   3 +
 .../example/ios/Flutter/Release.xcconfig      |   2 +
 example/flutter_plugin/example/ios/Podfile    |  65 ++
 .../ios/Runner.xcodeproj/project.pbxproj      | 509 ++++++++++
 .../contents.xcworkspacedata                  |   7 +
 .../xcshareddata/xcschemes/Runner.xcscheme    |  93 ++
 .../contents.xcworkspacedata                  |  10 +
 .../xcshareddata/IDEWorkspaceChecks.plist     |   8 +
 .../example/ios/Runner/AppDelegate.swift      |  13 +
 .../AppIcon.appiconset/Contents.json          | 122 +++
 .../Icon-App-1024x1024@1x.png                 | Bin 0 -> 11112 bytes
 .../AppIcon.appiconset/Icon-App-20x20@1x.png  | Bin 0 -> 564 bytes
 .../AppIcon.appiconset/Icon-App-20x20@2x.png  | Bin 0 -> 1283 bytes
 .../AppIcon.appiconset/Icon-App-20x20@3x.png  | Bin 0 -> 1588 bytes
 .../AppIcon.appiconset/Icon-App-29x29@1x.png  | Bin 0 -> 1025 bytes
 .../AppIcon.appiconset/Icon-App-29x29@2x.png  | Bin 0 -> 1716 bytes
 .../AppIcon.appiconset/Icon-App-29x29@3x.png  | Bin 0 -> 1920 bytes
 .../AppIcon.appiconset/Icon-App-40x40@1x.png  | Bin 0 -> 1283 bytes
 .../AppIcon.appiconset/Icon-App-40x40@2x.png  | Bin 0 -> 1895 bytes
 .../AppIcon.appiconset/Icon-App-40x40@3x.png  | Bin 0 -> 2665 bytes
 .../AppIcon.appiconset/Icon-App-60x60@2x.png  | Bin 0 -> 2665 bytes
 .../AppIcon.appiconset/Icon-App-60x60@3x.png  | Bin 0 -> 3831 bytes
 .../AppIcon.appiconset/Icon-App-76x76@1x.png  | Bin 0 -> 1888 bytes
 .../AppIcon.appiconset/Icon-App-76x76@2x.png  | Bin 0 -> 3294 bytes
 .../Icon-App-83.5x83.5@2x.png                 | Bin 0 -> 3612 bytes
 .../LaunchImage.imageset/Contents.json        |  23 +
 .../LaunchImage.imageset/LaunchImage.png      | Bin 0 -> 68 bytes
 .../LaunchImage.imageset/LaunchImage@2x.png   | Bin 0 -> 68 bytes
 .../LaunchImage.imageset/LaunchImage@3x.png   | Bin 0 -> 68 bytes
 .../LaunchImage.imageset/README.md            |   5 +
 .../Runner/Base.lproj/LaunchScreen.storyboard |  37 +
 .../ios/Runner/Base.lproj/Main.storyboard     |  26 +
 .../example/ios/Runner/Info.plist             |  45 +
 .../ios/Runner/Runner-Bridging-Header.h       |   1 +
 .../example/ios/Runner/Storyboard.storyboard  |  89 ++
 example/flutter_plugin/example/lib/main.dart  |  39 +
 example/flutter_plugin/example/pubspec.yaml   |  70 ++
 .../example/test/widget_test.dart             |  25 +
 example/flutter_plugin/ios/.gitignore         |  36 +
 example/flutter_plugin/ios/Assets/.gitkeep    |   0
 .../ios/Classes/FlutterPlugin.h               |   4 +
 .../ios/Classes/FlutterPlugin.m               |   8 +
 .../ios/Classes/SwiftFlutterPlugin.swift      |  45 +
 .../flutter_plugin/ios/flutter_plugin.podspec |  21 +
 .../flutter_plugin/lib/flutter_plugin.dart    |  17 +
 example/flutter_plugin/pubspec.yaml           |  52 +
 example/ios/Runner.xcodeproj/project.pbxproj  |   7 +
 .../xcshareddata/xcschemes/Runner.xcscheme    |   2 -
 .../ios/Runner/Assets.xcassets/Contents.json  |   6 +
 .../Runner/Base.lproj/LaunchScreen.storyboard |  40 +-
 example/ios/Runner/Base.lproj/Main.storyboard |  19 +-
 example/ios/Runner/WebView.storyboard         | 116 +++
 example/lib/main.dart                         |  13 +-
 flutter_inappbrowser.iml                      |   3 +
 flutter_inappbrowser_android.iml              |   2 +-
 ios/Classes/InAppBrowserOptions.swift         |  42 +
 .../InAppBrowserWebViewController.swift       | 566 +++++++++++
 ios/Classes/SwiftFlutterPlugin.swift          | 892 ++----------------
 lib/flutter_inappbrowser.dart                 |   2 +-
 97 files changed, 2961 insertions(+), 1052 deletions(-)
 create mode 100644 .gradle/4.4.1/fileChanges/last-build.bin
 create mode 100644 .gradle/4.4.1/fileHashes/fileHashes.lock
 create mode 100644 .gradle/4.4.1/taskHistory/taskHistory.lock
 create mode 100644 .gradle/buildOutputCleanup/buildOutputCleanup.lock
 create mode 100644 .gradle/buildOutputCleanup/cache.properties
 create mode 100644 example/flutter_plugin/.gitignore
 create mode 100644 example/flutter_plugin/CHANGELOG.md
 create mode 100644 example/flutter_plugin/LICENSE
 create mode 100644 example/flutter_plugin/README.md
 create mode 100644 example/flutter_plugin/android/.gitignore
 create mode 100644 example/flutter_plugin/android/build.gradle
 create mode 100644 example/flutter_plugin/android/gradle.properties
 create mode 100644 example/flutter_plugin/android/settings.gradle
 create mode 100644 example/flutter_plugin/android/src/main/AndroidManifest.xml
 create mode 100644 example/flutter_plugin/android/src/main/java/com/pichillilorenzo/flutterplugin/FlutterPlugin.java
 create mode 100644 example/flutter_plugin/example/.gitignore
 create mode 100644 example/flutter_plugin/example/.metadata
 create mode 100644 example/flutter_plugin/example/README.md
 create mode 100644 example/flutter_plugin/example/android/app/build.gradle
 create mode 100644 example/flutter_plugin/example/android/app/src/main/AndroidManifest.xml
 create mode 100644 example/flutter_plugin/example/android/app/src/main/java/com/pichillilorenzo/flutterpluginexample/MainActivity.java
 create mode 100644 example/flutter_plugin/example/android/app/src/main/res/drawable/launch_background.xml
 create mode 100644 example/flutter_plugin/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
 create mode 100644 example/flutter_plugin/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
 create mode 100644 example/flutter_plugin/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
 create mode 100644 example/flutter_plugin/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
 create mode 100644 example/flutter_plugin/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
 create mode 100644 example/flutter_plugin/example/android/app/src/main/res/values/styles.xml
 create mode 100644 example/flutter_plugin/example/android/build.gradle
 create mode 100644 example/flutter_plugin/example/android/gradle.properties
 create mode 100644 example/flutter_plugin/example/android/gradle/wrapper/gradle-wrapper.properties
 create mode 100644 example/flutter_plugin/example/android/settings.gradle
 create mode 100644 example/flutter_plugin/example/ios/Flutter/AppFrameworkInfo.plist
 create mode 100644 example/flutter_plugin/example/ios/Flutter/Debug.xcconfig
 create mode 100644 example/flutter_plugin/example/ios/Flutter/Release.xcconfig
 create mode 100644 example/flutter_plugin/example/ios/Podfile
 create mode 100644 example/flutter_plugin/example/ios/Runner.xcodeproj/project.pbxproj
 create mode 100644 example/flutter_plugin/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
 create mode 100644 example/flutter_plugin/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
 create mode 100644 example/flutter_plugin/example/ios/Runner.xcworkspace/contents.xcworkspacedata
 create mode 100644 example/flutter_plugin/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
 create mode 100644 example/flutter_plugin/example/ios/Runner/AppDelegate.swift
 create mode 100644 example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
 create mode 100644 example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
 create mode 100644 example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
 create mode 100644 example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
 create mode 100644 example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
 create mode 100644 example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
 create mode 100644 example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
 create mode 100644 example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
 create mode 100644 example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
 create mode 100644 example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
 create mode 100644 example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
 create mode 100644 example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
 create mode 100644 example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
 create mode 100644 example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
 create mode 100644 example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
 create mode 100644 example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
 create mode 100644 example/flutter_plugin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
 create mode 100644 example/flutter_plugin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
 create mode 100644 example/flutter_plugin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
 create mode 100644 example/flutter_plugin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
 create mode 100644 example/flutter_plugin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
 create mode 100644 example/flutter_plugin/example/ios/Runner/Base.lproj/LaunchScreen.storyboard
 create mode 100644 example/flutter_plugin/example/ios/Runner/Base.lproj/Main.storyboard
 create mode 100644 example/flutter_plugin/example/ios/Runner/Info.plist
 create mode 100644 example/flutter_plugin/example/ios/Runner/Runner-Bridging-Header.h
 create mode 100644 example/flutter_plugin/example/ios/Runner/Storyboard.storyboard
 create mode 100644 example/flutter_plugin/example/lib/main.dart
 create mode 100644 example/flutter_plugin/example/pubspec.yaml
 create mode 100644 example/flutter_plugin/example/test/widget_test.dart
 create mode 100644 example/flutter_plugin/ios/.gitignore
 create mode 100644 example/flutter_plugin/ios/Assets/.gitkeep
 create mode 100644 example/flutter_plugin/ios/Classes/FlutterPlugin.h
 create mode 100644 example/flutter_plugin/ios/Classes/FlutterPlugin.m
 create mode 100644 example/flutter_plugin/ios/Classes/SwiftFlutterPlugin.swift
 create mode 100644 example/flutter_plugin/ios/flutter_plugin.podspec
 create mode 100644 example/flutter_plugin/lib/flutter_plugin.dart
 create mode 100644 example/flutter_plugin/pubspec.yaml
 create mode 100644 example/ios/Runner/Assets.xcassets/Contents.json
 create mode 100644 example/ios/Runner/WebView.storyboard
 create mode 100644 ios/Classes/InAppBrowserOptions.swift
 create mode 100644 ios/Classes/InAppBrowserWebViewController.swift

diff --git a/.gradle/4.4.1/fileChanges/last-build.bin b/.gradle/4.4.1/fileChanges/last-build.bin
new file mode 100644
index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d
GIT binary patch
literal 1
IcmZPo000310RR91

literal 0
HcmV?d00001

diff --git a/.gradle/4.4.1/fileHashes/fileHashes.lock b/.gradle/4.4.1/fileHashes/fileHashes.lock
new file mode 100644
index 0000000000000000000000000000000000000000..3ae9587960c9d6a5b61ccd67f0c0082d7d4121ab
GIT binary patch
literal 17
TcmZP;c{2CZ1w)y=3{U_7HBbaS

literal 0
HcmV?d00001

diff --git a/.gradle/4.4.1/taskHistory/taskHistory.lock b/.gradle/4.4.1/taskHistory/taskHistory.lock
new file mode 100644
index 0000000000000000000000000000000000000000..b18ddce23cb4b2c4109a689c01e7af4edb9c8c84
GIT binary patch
literal 17
TcmZS9eDyb`u8eU40~7!NGav)?

literal 0
HcmV?d00001

diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
new file mode 100644
index 0000000000000000000000000000000000000000..9a4cb628ae772042c3356f4d6b6c7dcb7e8beb7e
GIT binary patch
literal 17
TcmZS9JaZ`5(ZC{?0Rk8SDh~rc

literal 0
HcmV?d00001

diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties
new file mode 100644
index 0000000..3d1809d
--- /dev/null
+++ b/.gradle/buildOutputCleanup/cache.properties
@@ -0,0 +1,2 @@
+#Sun Sep 16 19:20:12 CEST 2018
+gradle.version=4.4.1
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index b8bd638..a2b99c7 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -2,8 +2,24 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="9b41f7a2-a71e-4923-91fb-249d7815b3e7" name="Default" comment="">
+      <change beforePath="" afterPath="$PROJECT_DIR$/example/flutter_plugin/example/ios/Runner/Storyboard.storyboard" />
+      <change beforePath="" afterPath="$PROJECT_DIR$/example/ios/Runner/Assets.xcassets/Contents.json" />
+      <change beforePath="" afterPath="$PROJECT_DIR$/example/ios/Runner/WebView.storyboard" />
+      <change beforePath="" afterPath="$PROJECT_DIR$/ios/Classes/InAppBrowserOptions.swift" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
       <change beforePath="$PROJECT_DIR$/README.md" afterPath="$PROJECT_DIR$/README.md" />
+      <change beforePath="$PROJECT_DIR$/android/build.gradle" afterPath="$PROJECT_DIR$/android/build.gradle" />
+      <change beforePath="$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowser.java" afterPath="$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowser.java" />
+      <change beforePath="$PROJECT_DIR$/example/android/build.gradle" afterPath="$PROJECT_DIR$/example/android/build.gradle" />
+      <change beforePath="$PROJECT_DIR$/example/ios/Runner.xcodeproj/project.pbxproj" afterPath="$PROJECT_DIR$/example/ios/Runner.xcodeproj/project.pbxproj" />
+      <change beforePath="$PROJECT_DIR$/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme" afterPath="$PROJECT_DIR$/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme" />
+      <change beforePath="$PROJECT_DIR$/example/ios/Runner/Base.lproj/LaunchScreen.storyboard" afterPath="$PROJECT_DIR$/example/ios/Runner/Base.lproj/LaunchScreen.storyboard" />
+      <change beforePath="$PROJECT_DIR$/example/ios/Runner/Base.lproj/Main.storyboard" afterPath="$PROJECT_DIR$/example/ios/Runner/Base.lproj/Main.storyboard" />
+      <change beforePath="$PROJECT_DIR$/example/lib/main.dart" afterPath="$PROJECT_DIR$/example/lib/main.dart" />
+      <change beforePath="$PROJECT_DIR$/flutter_inappbrowser.iml" afterPath="$PROJECT_DIR$/flutter_inappbrowser.iml" />
+      <change beforePath="$PROJECT_DIR$/flutter_inappbrowser_android.iml" afterPath="$PROJECT_DIR$/flutter_inappbrowser_android.iml" />
+      <change beforePath="$PROJECT_DIR$/ios/Classes/SwiftFlutterPlugin.swift" afterPath="$PROJECT_DIR$/ios/Classes/SwiftFlutterPlugin.swift" />
+      <change beforePath="$PROJECT_DIR$/lib/flutter_inappbrowser.dart" afterPath="$PROJECT_DIR$/lib/flutter_inappbrowser.dart" />
     </list>
     <ignored path="$PROJECT_DIR$/.dart_tool/" />
     <ignored path="$PROJECT_DIR$/.idea/" />
@@ -20,14 +36,12 @@
   </component>
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file leaf-file-name="main.dart" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/example/lib/main.dart">
+      <file leaf-file-name="InAppBrowser.java" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowser.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="151">
-              <caret line="14" column="26" lean-forward="true" selection-start-line="14" selection-start-column="26" selection-end-line="14" selection-end-column="26" />
-              <folding>
-                <element signature="e#0#39#0" expanded="true" />
-              </folding>
+            <state relative-caret-position="0">
+              <caret line="157" column="0" lean-forward="false" selection-start-line="157" selection-start-column="0" selection-end-line="157" selection-end-column="0" />
+              <folding />
             </state>
           </provider>
         </entry>
@@ -35,60 +49,25 @@
       <file leaf-file-name="flutter_inappbrowser.dart" pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/lib/flutter_inappbrowser.dart">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="2760">
-              <caret line="184" column="71" lean-forward="false" selection-start-line="184" selection-start-column="71" selection-end-line="184" selection-end-column="71" />
+            <state relative-caret-position="381">
+              <caret line="119" column="89" lean-forward="false" selection-start-line="119" selection-start-column="89" selection-end-line="119" selection-end-column="89" />
               <folding>
-                <element signature="e#0#12626#0" expanded="true" />
                 <element signature="e#814#834#0" expanded="true" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="pubspec.yaml" pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/pubspec.yaml">
+      <file leaf-file-name="main.dart" pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/example/lib/main.dart">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="15">
-              <caret line="1" column="133" lean-forward="false" selection-start-line="1" selection-start-column="13" selection-end-line="1" selection-end-column="133" />
+            <state relative-caret-position="434">
+              <caret line="68" column="16" lean-forward="false" selection-start-line="68" selection-start-column="16" selection-end-line="68" selection-end-column="16" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="README.md" pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/README.md">
-          <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
-            <state split_layout="SPLIT">
-              <first_editor relative-caret-position="475">
-                <caret line="281" column="0" lean-forward="true" selection-start-line="281" selection-start-column="0" selection-end-line="281" selection-end-column="0" />
-                <folding>
-                  <marker date="1536885760912" expanded="true" signature="933:1031" ph="..." />
-                  <marker date="1536885760912" expanded="true" signature="1075:1558" ph="{...}" />
-                  <marker date="1536885760912" expanded="true" signature="1121:1189" ph="{...}" />
-                  <marker date="1536885760912" expanded="true" signature="1233:1300" ph="{...}" />
-                  <marker date="1536885760912" expanded="true" signature="1374:1462" ph="{...}" />
-                  <marker date="1536885760912" expanded="true" signature="1492:1555" ph="{...}" />
-                  <marker date="1536885760912" expanded="true" signature="1685:1750" ph="{...}" />
-                  <marker date="1536885760912" expanded="true" signature="1791:2302" ph="{...}" />
-                  <marker date="1536885760912" expanded="true" signature="1825:1853" ph="{...}" />
-                  <marker date="1536885760912" expanded="true" signature="1904:2300" ph="{...}" />
-                  <marker date="1536885760912" expanded="true" signature="1932:2295" ph="(...)" />
-                  <marker date="1536885760912" expanded="true" signature="1958:2288" ph="(...)" />
-                  <marker date="1536885760912" expanded="true" signature="1986:2069" ph="(...)" />
-                  <marker date="1536885760912" expanded="true" signature="2015:2058" ph="(...)" />
-                  <marker date="1536885760912" expanded="true" signature="2095:2279" ph="(...)" />
-                  <marker date="1536885760912" expanded="true" signature="2130:2268" ph="(...)" />
-                  <marker date="1536885760912" expanded="true" signature="10492:10525" ph="{...}" />
-                  <marker date="1536885760912" expanded="true" signature="10644:10676" ph="{...}" />
-                  <marker date="1536885760912" expanded="true" signature="10836:10868" ph="{...}" />
-                  <marker date="1536885760912" expanded="true" signature="10964:10989" ph="{...}" />
-                </folding>
-              </first_editor>
-              <second_editor />
-            </state>
-          </provider>
-        </entry>
-      </file>
     </leaf>
   </component>
   <component name="FileTemplateManagerImpl">
@@ -166,17 +145,19 @@
         <option value="$PROJECT_DIR$/LICENSE" />
         <option value="$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowserDialog.java" />
         <option value="$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowserClient.java" />
+        <option value="$PROJECT_DIR$/pubspec.yaml" />
+        <option value="$PROJECT_DIR$/README.md" />
+        <option value="$PROJECT_DIR$/android/build.gradle" />
         <option value="$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowser.java" />
         <option value="$PROJECT_DIR$/lib/flutter_inappbrowser.dart" />
-        <option value="$PROJECT_DIR$/pubspec.yaml" />
         <option value="$PROJECT_DIR$/example/lib/main.dart" />
-        <option value="$PROJECT_DIR$/README.md" />
       </list>
     </option>
   </component>
   <component name="ProjectFrameBounds">
-    <option name="y" value="23" />
-    <option name="width" value="1920" />
+    <option name="x" value="2459" />
+    <option name="y" value="-20" />
+    <option name="width" value="1381" />
     <option name="height" value="1057" />
   </component>
   <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
@@ -195,6 +176,9 @@
       <foldersAlwaysOnTop value="true" />
     </navigator>
     <panes>
+      <pane id="Scope" />
+      <pane id="PackagesPane" />
+      <pane id="Scratches" />
       <pane id="AndroidView" />
       <pane id="ProjectPane">
         <subPane>
@@ -206,7 +190,37 @@
             <path>
               <item name="flutter_inappbrowser" type="b2602c69:ProjectViewProjectNode" />
               <item name="flutter_inappbrowser" type="462c0819:PsiDirectoryNode" />
-              <item name="android" type="462c0819:PsiDirectoryNode" />
+              <item name="example" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="flutter_inappbrowser" type="b2602c69:ProjectViewProjectNode" />
+              <item name="flutter_inappbrowser" type="462c0819:PsiDirectoryNode" />
+              <item name="example" type="462c0819:PsiDirectoryNode" />
+              <item name="ios" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="flutter_inappbrowser" type="b2602c69:ProjectViewProjectNode" />
+              <item name="flutter_inappbrowser" type="462c0819:PsiDirectoryNode" />
+              <item name="example" type="462c0819:PsiDirectoryNode" />
+              <item name="ios" type="462c0819:PsiDirectoryNode" />
+              <item name="Flutter" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="flutter_inappbrowser" type="b2602c69:ProjectViewProjectNode" />
+              <item name="flutter_inappbrowser" type="462c0819:PsiDirectoryNode" />
+              <item name="example" type="462c0819:PsiDirectoryNode" />
+              <item name="lib" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="flutter_inappbrowser" type="b2602c69:ProjectViewProjectNode" />
+              <item name="flutter_inappbrowser" type="462c0819:PsiDirectoryNode" />
+              <item name="ios" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="flutter_inappbrowser" type="b2602c69:ProjectViewProjectNode" />
+              <item name="flutter_inappbrowser" type="462c0819:PsiDirectoryNode" />
+              <item name="ios" type="462c0819:PsiDirectoryNode" />
+              <item name="Classes" type="462c0819:PsiDirectoryNode" />
             </path>
             <path>
               <item name="flutter_inappbrowser" type="b2602c69:ProjectViewProjectNode" />
@@ -218,9 +232,6 @@
         </subPane>
         <option name="show-excluded-files" value="false" />
       </pane>
-      <pane id="PackagesPane" />
-      <pane id="Scope" />
-      <pane id="Scratches" />
     </panes>
   </component>
   <component name="PropertiesComponent">
@@ -228,8 +239,17 @@
     <property name="dart.analysis.tool.window.force.activate" value="false" />
     <property name="show.migrate.to.gradle.popup" value="false" />
     <property name="io.flutter.reload.alreadyRun" value="true" />
+    <property name="project.structure.last.edited" value="Libraries" />
+    <property name="project.structure.proportion" value="0.15" />
+    <property name="project.structure.side.proportion" value="0.2" />
+    <property name="Downloaded.Files.Path.Enabled" value="true" />
+    <property name="Repository.Attach.JavaDocs" value="false" />
+    <property name="Repository.Attach.Sources" value="false" />
   </component>
   <component name="RecentsManager">
+    <key name="CopyFile.RECENT_KEYS">
+      <recent name="$PROJECT_DIR$/android/libs" />
+    </key>
     <key name="MoveFile.RECENT_KEYS">
       <recent name="$PROJECT_DIR$/android/src/main/java" />
     </key>
@@ -398,69 +418,149 @@
     <servers />
   </component>
   <component name="ToolWindowManager">
-    <frame x="0" y="23" width="1920" height="1057" extended-state="0" />
+    <frame x="2459" y="-20" width="1381" height="1057" extended-state="0" />
     <editor active="true" />
     <layout>
       <window_info id="Android Profiler" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
+      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.31735888" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+      <window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
       <window_info id="Build Variants" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
+      <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
       <window_info id="Dart Analysis" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3290735" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.30258304" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32800853" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
       <window_info id="Flutter Outline" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32977968" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Logcat" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+      <window_info id="Captures" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
       <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
       <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25690815" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
       <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="Device File Explorer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="true" content_ui="tabs" />
-      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
-      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
-      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3290735" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
-      <window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
-      <window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
-      <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
-      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.26198083" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
-      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
-      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3290735" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
-      <window_info id="Captures" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
-      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.18317358" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
-      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3290735" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
       <window_info id="Flutter Inspector" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
       <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
       <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+      <window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32800853" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
       <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
       <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
+      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3290735" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
     </layout>
+    <layout-to-restore>
+      <window_info id="Android Profiler" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
+      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+      <window_info id="Build Variants" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
+      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="true" content_ui="tabs" />
+      <window_info id="Dart Analysis" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3290735" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
+      <window_info id="Flutter Outline" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32977968" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Logcat" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
+      <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
+      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
+      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="Device File Explorer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="true" content_ui="tabs" />
+      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
+      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3290735" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
+      <window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
+      <window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
+      <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
+      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2618262" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="12" side_tool="false" content_ui="tabs" />
+      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3290735" sideWeight="0.5" order="13" side_tool="false" content_ui="tabs" />
+      <window_info id="Captures" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.1934085" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
+      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3290735" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
+      <window_info id="Flutter Inspector" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
+    </layout-to-restore>
   </component>
   <component name="VcsContentAnnotationSettings">
     <option name="myLimit" value="2678400000" />
   </component>
   <component name="XDebuggerManager">
     <breakpoint-manager>
-      <option name="time" value="2" />
+      <option name="time" value="4" />
     </breakpoint-manager>
     <watches-manager />
   </component>
   <component name="editorHistoryManager">
+    <entry file="file://$PROJECT_DIR$/example/flutter_webview_example.iml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/lib/flutter_inappbrowser.dart">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="29" column="0" lean-forward="false" selection-start-line="27" selection-start-column="0" selection-end-line="29" selection-end-column="0" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/example/android/app/src/main/AndroidManifest.xml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="105">
+          <caret line="7" column="65" lean-forward="false" selection-start-line="7" selection-start-column="65" selection-end-line="7" selection-end-column="65" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/android/src/main/AndroidManifest.xml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="90">
+          <caret line="6" column="0" lean-forward="true" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="0" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/flutter_inappbrowser_android.iml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="45">
+          <caret line="3" column="12" lean-forward="false" selection-start-line="3" selection-start-column="12" selection-end-line="3" selection-end-column="12" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/flutter_inappbrowser.iml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="38" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar:///Volumes/ELEMENTS/android_tools/platforms/android-25/android.jar!/AndroidManifest.xml" />
+    <entry file="file://$PROJECT_DIR$/android/build.gradle">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="407">
+          <caret line="30" column="5" lean-forward="false" selection-start-line="30" selection-start-column="5" selection-end-line="30" selection-end-column="5" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowser.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="258">
+          <caret line="65" column="18" lean-forward="false" selection-start-line="65" selection-start-column="18" selection-end-line="65" selection-end-column="18" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowser.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="105">
           <caret line="74" column="13" lean-forward="false" selection-start-line="74" selection-start-column="13" selection-end-line="74" selection-end-column="13" />
-          <folding>
-            <element signature="e#0#34913#0" expanded="false" />
-            <element signature="e#9355#9356#0" expanded="false" />
-            <element signature="e#9394#9395#0" expanded="false" />
-            <element signature="e#9568#9569#0" expanded="false" />
-            <element signature="e#9607#9608#0" expanded="false" />
-            <element signature="e#18465#18466#0" expanded="false" />
-            <element signature="e#18504#18505#0" expanded="false" />
-            <element signature="e#21476#21477#0" expanded="false" />
-            <element signature="e#21510#21511#0" expanded="false" />
-            <element signature="e#22775#22776#0" expanded="false" />
-            <element signature="e#22812#22813#0" expanded="false" />
-          </folding>
+          <folding />
         </state>
       </provider>
     </entry>
@@ -468,7 +568,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="270">
           <caret line="18" column="34" lean-forward="true" selection-start-line="18" selection-start-column="34" selection-end-line="18" selection-end-column="34" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -476,9 +575,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="135">
           <caret line="9" column="34" lean-forward="true" selection-start-line="9" selection-start-column="34" selection-end-line="9" selection-end-column="34" />
-          <folding>
-            <element signature="e#0#39#0" expanded="true" />
-          </folding>
         </state>
       </provider>
     </entry>
@@ -502,7 +598,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="0">
           <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -527,13 +622,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/example/ios/Flutter/Debug.xcconfig">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="30">
-          <caret line="2" column="24" lean-forward="false" selection-start-line="2" selection-start-column="24" selection-end-line="2" selection-end-column="24" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/example/ios/Runner/AppDelegate.swift">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="0">
@@ -559,7 +647,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="0">
           <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -567,7 +654,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="0">
           <caret line="0" column="20" lean-forward="false" selection-start-line="0" selection-start-column="20" selection-end-line="0" selection-end-column="20" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -575,23 +661,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="0">
           <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/android/build.gradle">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-44">
-          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/android/src/main/AndroidManifest.xml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="75">
-          <caret line="5" column="11" lean-forward="false" selection-start-line="5" selection-start-column="11" selection-end-line="5" selection-end-column="11" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -627,7 +696,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="0">
           <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -635,7 +703,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="0">
           <caret line="0" column="6" lean-forward="false" selection-start-line="0" selection-start-column="6" selection-end-line="0" selection-end-column="26" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -643,7 +710,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="270">
           <caret line="18" column="33" lean-forward="false" selection-start-line="18" selection-start-column="33" selection-end-line="18" selection-end-column="33" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -651,7 +717,6 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="0">
           <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-          <folding />
         </state>
       </provider>
     </entry>
@@ -659,23 +724,13 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="270">
           <caret line="18" column="50" lean-forward="false" selection-start-line="18" selection-start-column="50" selection-end-line="18" selection-end-column="50" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/flutter_inappbrowser_android.iml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="0">
-          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-          <folding />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/flutter_inappbrowser.iml">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="0">
-          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-          <folding />
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="38" />
         </state>
       </provider>
     </entry>
@@ -684,7 +739,6 @@
         <state split_layout="SPLIT">
           <first_editor relative-caret-position="45">
             <caret line="3" column="0" lean-forward="true" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" />
-            <folding />
           </first_editor>
           <second_editor />
         </state>
@@ -694,72 +748,97 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="15">
           <caret line="1" column="31" lean-forward="false" selection-start-line="1" selection-start-column="31" selection-end-line="1" selection-end-column="31" />
-          <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowserDialog.java">
+    <entry file="file://$PROJECT_DIR$/ios/Classes/SwiftFlutterPlugin.swift">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="285">
-          <caret line="19" column="3" lean-forward="false" selection-start-line="19" selection-start-column="3" selection-end-line="19" selection-end-column="3" />
-          <folding>
-            <element signature="e#0#1715#0" expanded="false" />
-          </folding>
+        <state relative-caret-position="1965">
+          <caret line="131" column="5" lean-forward="true" selection-start-line="131" selection-start-column="5" selection-end-line="131" selection-end-column="5" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/pubspec.yaml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="15">
+          <caret line="1" column="133" lean-forward="false" selection-start-line="1" selection-start-column="13" selection-end-line="1" selection-end-column="133" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/android/src/main/AndroidManifest.xml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="90">
+          <caret line="6" column="0" lean-forward="true" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="0" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowserClient.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="285">
-          <caret line="19" column="3" lean-forward="false" selection-start-line="19" selection-start-column="3" selection-end-line="19" selection-end-column="3" />
-          <folding>
-            <element signature="e#0#8235#0" expanded="false" />
-          </folding>
+        <state relative-caret-position="-26">
+          <caret line="46" column="13" lean-forward="false" selection-start-line="46" selection-start-column="13" selection-end-line="46" selection-end-column="13" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowserDialog.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="120">
+          <caret line="27" column="20" lean-forward="true" selection-start-line="27" selection-start-column="20" selection-end-line="27" selection-end-column="20" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/README.md">
+      <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
+        <state split_layout="SPLIT">
+          <first_editor relative-caret-position="106">
+            <caret line="94" column="0" lean-forward="true" selection-start-line="94" selection-start-column="0" selection-end-line="94" selection-end-column="0" />
+          </first_editor>
+          <second_editor />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/android/build.gradle">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="495">
+          <caret line="33" column="1" lean-forward="false" selection-start-line="33" selection-start-column="1" selection-end-line="33" selection-end-column="1" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/flutter_inappbrowser_android.iml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="435">
+          <caret line="29" column="9" lean-forward="false" selection-start-line="29" selection-start-column="9" selection-end-line="29" selection-end-column="9" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowser.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="285">
-          <caret line="19" column="3" lean-forward="false" selection-start-line="19" selection-start-column="3" selection-end-line="19" selection-end-column="3" />
-          <folding>
-            <element signature="e#0#34913#0" expanded="false" />
-            <element signature="e#9355#9356#0" expanded="false" />
-            <element signature="e#9394#9395#0" expanded="false" />
-            <element signature="e#9568#9569#0" expanded="false" />
-            <element signature="e#9607#9608#0" expanded="false" />
-            <element signature="e#18465#18466#0" expanded="false" />
-            <element signature="e#18504#18505#0" expanded="false" />
-            <element signature="e#21476#21477#0" expanded="false" />
-            <element signature="e#21510#21511#0" expanded="false" />
-            <element signature="e#22775#22776#0" expanded="false" />
-            <element signature="e#22812#22813#0" expanded="false" />
-          </folding>
+        <state relative-caret-position="0">
+          <caret line="157" column="0" lean-forward="false" selection-start-line="157" selection-start-column="0" selection-end-line="157" selection-end-column="0" />
+          <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/ios/Classes/SwiftFlutterPlugin.swift">
+    <entry file="file://$PROJECT_DIR$/example/ios/Flutter/Release.xcconfig">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1965">
-          <caret line="131" column="5" lean-forward="true" selection-start-line="131" selection-start-column="5" selection-end-line="131" selection-end-column="5" />
+        <state relative-caret-position="0">
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/pubspec.yaml">
+    <entry file="file://$PROJECT_DIR$/example/ios/Flutter/Debug.xcconfig">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="15">
-          <caret line="1" column="133" lean-forward="false" selection-start-line="1" selection-start-column="13" selection-end-line="1" selection-end-column="133" />
+        <state relative-caret-position="30">
+          <caret line="2" column="0" lean-forward="false" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="24" />
           <folding />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/lib/flutter_inappbrowser.dart">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="2760">
-          <caret line="184" column="71" lean-forward="false" selection-start-line="184" selection-start-column="71" selection-end-line="184" selection-end-column="71" />
+        <state relative-caret-position="381">
+          <caret line="119" column="89" lean-forward="false" selection-start-line="119" selection-start-column="89" selection-end-line="119" selection-end-column="89" />
           <folding>
-            <element signature="e#0#12626#0" expanded="true" />
             <element signature="e#814#834#0" expanded="true" />
           </folding>
         </state>
@@ -767,45 +846,86 @@
     </entry>
     <entry file="file://$PROJECT_DIR$/example/lib/main.dart">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="151">
-          <caret line="14" column="26" lean-forward="true" selection-start-line="14" selection-start-column="26" selection-end-line="14" selection-end-column="26" />
-          <folding>
-            <element signature="e#0#39#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/README.md">
-      <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
-        <state split_layout="SPLIT">
-          <first_editor relative-caret-position="475">
-            <caret line="281" column="0" lean-forward="true" selection-start-line="281" selection-start-column="0" selection-end-line="281" selection-end-column="0" />
-            <folding>
-              <marker date="1536885760912" expanded="true" signature="933:1031" ph="..." />
-              <marker date="1536885760912" expanded="true" signature="1075:1558" ph="{...}" />
-              <marker date="1536885760912" expanded="true" signature="1121:1189" ph="{...}" />
-              <marker date="1536885760912" expanded="true" signature="1233:1300" ph="{...}" />
-              <marker date="1536885760912" expanded="true" signature="1374:1462" ph="{...}" />
-              <marker date="1536885760912" expanded="true" signature="1492:1555" ph="{...}" />
-              <marker date="1536885760912" expanded="true" signature="1685:1750" ph="{...}" />
-              <marker date="1536885760912" expanded="true" signature="1791:2302" ph="{...}" />
-              <marker date="1536885760912" expanded="true" signature="1825:1853" ph="{...}" />
-              <marker date="1536885760912" expanded="true" signature="1904:2300" ph="{...}" />
-              <marker date="1536885760912" expanded="true" signature="1932:2295" ph="(...)" />
-              <marker date="1536885760912" expanded="true" signature="1958:2288" ph="(...)" />
-              <marker date="1536885760912" expanded="true" signature="1986:2069" ph="(...)" />
-              <marker date="1536885760912" expanded="true" signature="2015:2058" ph="(...)" />
-              <marker date="1536885760912" expanded="true" signature="2095:2279" ph="(...)" />
-              <marker date="1536885760912" expanded="true" signature="2130:2268" ph="(...)" />
-              <marker date="1536885760912" expanded="true" signature="10492:10525" ph="{...}" />
-              <marker date="1536885760912" expanded="true" signature="10644:10676" ph="{...}" />
-              <marker date="1536885760912" expanded="true" signature="10836:10868" ph="{...}" />
-              <marker date="1536885760912" expanded="true" signature="10964:10989" ph="{...}" />
-            </folding>
-          </first_editor>
-          <second_editor />
+        <state relative-caret-position="434">
+          <caret line="68" column="16" lean-forward="false" selection-start-line="68" selection-start-column="16" selection-end-line="68" selection-end-column="16" />
+          <folding />
         </state>
       </provider>
     </entry>
   </component>
+  <component name="masterDetails">
+    <states>
+      <state key="ArtifactsStructureConfigurable.UI">
+        <settings>
+          <artifact-editor />
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="FacetStructureConfigurable.UI">
+        <settings>
+          <last-edited>Android</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="GlobalLibrariesConfigurable.UI">
+        <settings>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="JdkListConfigurable.UI">
+        <settings>
+          <last-edited>1.8</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="ModuleStructureConfigurable.UI">
+        <settings>
+          <last-edited>flutter_inappbrowser_android</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+      <state key="ProjectLibrariesConfigurable.UI">
+        <settings>
+          <last-edited>Dart SDK</last-edited>
+          <splitter-proportions>
+            <option name="proportions">
+              <list>
+                <option value="0.2" />
+              </list>
+            </option>
+          </splitter-proportions>
+        </settings>
+      </state>
+    </states>
+  </component>
 </project>
\ No newline at end of file
diff --git a/README.md b/README.md
index da10681..cfa417a 100644
--- a/README.md
+++ b/README.md
@@ -91,7 +91,7 @@ class _MyAppState extends State<MyApp> {
 
 ### InAppBrowser.open
 
-Opens a URL in a new InAppBrowser instance, the current browser instance, or the system browser.
+Opens a URL in a new InAppBrowser instance or the system browser.
 
 ```dart
 inAppBrowser.open(url, target, options);
diff --git a/android/build.gradle b/android/build.gradle
index 04b6582..24f18e7 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -32,3 +32,7 @@ android {
         disable 'InvalidPackage'
     }
 }
+
+dependencies {
+    implementation 'com.android.support:customtabs:27.1.1'
+}
\ No newline at end of file
diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowser.java b/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowser.java
index 7866fe8..d38cbc0 100644
--- a/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowser.java
+++ b/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowser.java
@@ -155,6 +155,7 @@ public class InAppBrowser implements MethodCallHandler {
     switch (call.method) {
       case "open":
         final String url = call.argument("url").toString();
+
         String t = call.argument("target").toString();
         if (t == null || t.equals("") || t.equals(NULL)) {
           t = SELF;
diff --git a/example/android/build.gradle b/example/android/build.gradle
index d4225c7..ae21629 100644
--- a/example/android/build.gradle
+++ b/example/android/build.gradle
@@ -5,7 +5,7 @@ buildscript {
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.1.2'
+        classpath 'com.android.tools.build:gradle:3.1.4'
     }
 }
 
diff --git a/example/flutter_plugin/.gitignore b/example/flutter_plugin/.gitignore
new file mode 100644
index 0000000..7ecebb4
--- /dev/null
+++ b/example/flutter_plugin/.gitignore
@@ -0,0 +1,8 @@
+.DS_Store
+.dart_tool/
+
+.packages
+.pub/
+pubspec.lock
+
+build/
diff --git a/example/flutter_plugin/CHANGELOG.md b/example/flutter_plugin/CHANGELOG.md
new file mode 100644
index 0000000..41cc7d8
--- /dev/null
+++ b/example/flutter_plugin/CHANGELOG.md
@@ -0,0 +1,3 @@
+## 0.0.1
+
+* TODO: Describe initial release.
diff --git a/example/flutter_plugin/LICENSE b/example/flutter_plugin/LICENSE
new file mode 100644
index 0000000..ba75c69
--- /dev/null
+++ b/example/flutter_plugin/LICENSE
@@ -0,0 +1 @@
+TODO: Add your license here.
diff --git a/example/flutter_plugin/README.md b/example/flutter_plugin/README.md
new file mode 100644
index 0000000..69a4389
--- /dev/null
+++ b/example/flutter_plugin/README.md
@@ -0,0 +1,10 @@
+# flutter_plugin
+
+A new Flutter plugin.
+
+## Getting Started
+
+For help getting started with Flutter, view our online
+[documentation](https://flutter.io/).
+
+For help on editing plugin code, view the [documentation](https://flutter.io/developing-packages/#edit-plugin-package).
diff --git a/example/flutter_plugin/android/.gitignore b/example/flutter_plugin/android/.gitignore
new file mode 100644
index 0000000..c6cbe56
--- /dev/null
+++ b/example/flutter_plugin/android/.gitignore
@@ -0,0 +1,8 @@
+*.iml
+.gradle
+/local.properties
+/.idea/workspace.xml
+/.idea/libraries
+.DS_Store
+/build
+/captures
diff --git a/example/flutter_plugin/android/build.gradle b/example/flutter_plugin/android/build.gradle
new file mode 100644
index 0000000..a5addfb
--- /dev/null
+++ b/example/flutter_plugin/android/build.gradle
@@ -0,0 +1,34 @@
+group 'com.pichillilorenzo.flutterplugin'
+version '1.0-SNAPSHOT'
+
+buildscript {
+    repositories {
+        google()
+        jcenter()
+    }
+
+    dependencies {
+        classpath 'com.android.tools.build:gradle:3.1.2'
+    }
+}
+
+rootProject.allprojects {
+    repositories {
+        google()
+        jcenter()
+    }
+}
+
+apply plugin: 'com.android.library'
+
+android {
+    compileSdkVersion 27
+
+    defaultConfig {
+        minSdkVersion 16
+        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+    }
+    lintOptions {
+        disable 'InvalidPackage'
+    }
+}
diff --git a/example/flutter_plugin/android/gradle.properties b/example/flutter_plugin/android/gradle.properties
new file mode 100644
index 0000000..8bd86f6
--- /dev/null
+++ b/example/flutter_plugin/android/gradle.properties
@@ -0,0 +1 @@
+org.gradle.jvmargs=-Xmx1536M
diff --git a/example/flutter_plugin/android/settings.gradle b/example/flutter_plugin/android/settings.gradle
new file mode 100644
index 0000000..e039a04
--- /dev/null
+++ b/example/flutter_plugin/android/settings.gradle
@@ -0,0 +1 @@
+rootProject.name = 'flutter_plugin'
diff --git a/example/flutter_plugin/android/src/main/AndroidManifest.xml b/example/flutter_plugin/android/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..1c58002
--- /dev/null
+++ b/example/flutter_plugin/android/src/main/AndroidManifest.xml
@@ -0,0 +1,3 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+  package="com.pichillilorenzo.flutterplugin">
+</manifest>
diff --git a/example/flutter_plugin/android/src/main/java/com/pichillilorenzo/flutterplugin/FlutterPlugin.java b/example/flutter_plugin/android/src/main/java/com/pichillilorenzo/flutterplugin/FlutterPlugin.java
new file mode 100644
index 0000000..a7ea5cc
--- /dev/null
+++ b/example/flutter_plugin/android/src/main/java/com/pichillilorenzo/flutterplugin/FlutterPlugin.java
@@ -0,0 +1,25 @@
+package com.pichillilorenzo.flutterplugin;
+
+import io.flutter.plugin.common.MethodCall;
+import io.flutter.plugin.common.MethodChannel;
+import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
+import io.flutter.plugin.common.MethodChannel.Result;
+import io.flutter.plugin.common.PluginRegistry.Registrar;
+
+/** FlutterPlugin */
+public class FlutterPlugin implements MethodCallHandler {
+  /** Plugin registration. */
+  public static void registerWith(Registrar registrar) {
+    final MethodChannel channel = new MethodChannel(registrar.messenger(), "flutter_plugin");
+    channel.setMethodCallHandler(new FlutterPlugin());
+  }
+
+  @Override
+  public void onMethodCall(MethodCall call, Result result) {
+    if (call.method.equals("getPlatformVersion")) {
+      result.success("Android " + android.os.Build.VERSION.RELEASE);
+    } else {
+      result.notImplemented();
+    }
+  }
+}
diff --git a/example/flutter_plugin/example/.gitignore b/example/flutter_plugin/example/.gitignore
new file mode 100644
index 0000000..47e0b4d
--- /dev/null
+++ b/example/flutter_plugin/example/.gitignore
@@ -0,0 +1,71 @@
+# Miscellaneous
+*.class
+*.lock
+*.log
+*.pyc
+*.swp
+.DS_Store
+.atom/
+.buildlog/
+.history
+.svn/
+
+# IntelliJ related
+*.iml
+*.ipr
+*.iws
+.idea/
+
+# Visual Studio Code related
+.vscode/
+
+# Flutter/Dart/Pub related
+**/doc/api/
+.dart_tool/
+.flutter-plugins
+.packages
+.pub-cache/
+.pub/
+build/
+
+# Android related
+**/android/**/gradle-wrapper.jar
+**/android/.gradle
+**/android/captures/
+**/android/gradlew
+**/android/gradlew.bat
+**/android/local.properties
+**/android/**/GeneratedPluginRegistrant.java
+
+# iOS/XCode related
+**/ios/**/*.mode1v3
+**/ios/**/*.mode2v3
+**/ios/**/*.moved-aside
+**/ios/**/*.pbxuser
+**/ios/**/*.perspectivev3
+**/ios/**/*sync/
+**/ios/**/.sconsign.dblite
+**/ios/**/.tags*
+**/ios/**/.vagrant/
+**/ios/**/DerivedData/
+**/ios/**/Icon?
+**/ios/**/Pods/
+**/ios/**/.symlinks/
+**/ios/**/profile
+**/ios/**/xcuserdata
+**/ios/.generated/
+**/ios/Flutter/App.framework
+**/ios/Flutter/Flutter.framework
+**/ios/Flutter/Generated.xcconfig
+**/ios/Flutter/app.flx
+**/ios/Flutter/app.zip
+**/ios/Flutter/flutter_assets/
+**/ios/ServiceDefinitions.json
+**/ios/Runner/GeneratedPluginRegistrant.*
+
+# Exceptions to above rules.
+!**/ios/**/default.mode1v3
+!**/ios/**/default.mode2v3
+!**/ios/**/default.pbxuser
+!**/ios/**/default.perspectivev3
+!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
diff --git a/example/flutter_plugin/example/.metadata b/example/flutter_plugin/example/.metadata
new file mode 100644
index 0000000..dbdb9af
--- /dev/null
+++ b/example/flutter_plugin/example/.metadata
@@ -0,0 +1,8 @@
+# This file tracks properties of this Flutter project.
+# Used by Flutter tool to assess capabilities and perform upgrades etc.
+#
+# This file should be version controlled and should not be manually edited.
+
+version:
+  revision: 2bca8007bd1962940fa3b3d568bc52e446005616
+  channel: master
diff --git a/example/flutter_plugin/example/README.md b/example/flutter_plugin/example/README.md
new file mode 100644
index 0000000..17ecae4
--- /dev/null
+++ b/example/flutter_plugin/example/README.md
@@ -0,0 +1,8 @@
+# flutter_plugin_example
+
+Demonstrates how to use the flutter_plugin plugin.
+
+## Getting Started
+
+For help getting started with Flutter, view our online
+[documentation](https://flutter.io/).
diff --git a/example/flutter_plugin/example/android/app/build.gradle b/example/flutter_plugin/example/android/app/build.gradle
new file mode 100644
index 0000000..545d4ec
--- /dev/null
+++ b/example/flutter_plugin/example/android/app/build.gradle
@@ -0,0 +1,61 @@
+def localProperties = new Properties()
+def localPropertiesFile = rootProject.file('local.properties')
+if (localPropertiesFile.exists()) {
+    localPropertiesFile.withReader('UTF-8') { reader ->
+        localProperties.load(reader)
+    }
+}
+
+def flutterRoot = localProperties.getProperty('flutter.sdk')
+if (flutterRoot == null) {
+    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
+}
+
+def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
+if (flutterVersionCode == null) {
+    flutterVersionCode = '1'
+}
+
+def flutterVersionName = localProperties.getProperty('flutter.versionName')
+if (flutterVersionName == null) {
+    flutterVersionName = '1.0'
+}
+
+apply plugin: 'com.android.application'
+apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
+
+android {
+    compileSdkVersion 27
+
+    lintOptions {
+        disable 'InvalidPackage'
+    }
+
+    defaultConfig {
+        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
+        applicationId "com.pichillilorenzo.flutterpluginexample"
+        minSdkVersion 16
+        targetSdkVersion 27
+        versionCode flutterVersionCode.toInteger()
+        versionName flutterVersionName
+        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+    }
+
+    buildTypes {
+        release {
+            // TODO: Add your own signing config for the release build.
+            // Signing with the debug keys for now, so `flutter run --release` works.
+            signingConfig signingConfigs.debug
+        }
+    }
+}
+
+flutter {
+    source '../..'
+}
+
+dependencies {
+    testImplementation 'junit:junit:4.12'
+    androidTestImplementation 'com.android.support.test:runner:1.0.2'
+    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
+}
diff --git a/example/flutter_plugin/example/android/app/src/main/AndroidManifest.xml b/example/flutter_plugin/example/android/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..dbdb33a
--- /dev/null
+++ b/example/flutter_plugin/example/android/app/src/main/AndroidManifest.xml
@@ -0,0 +1,39 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.pichillilorenzo.flutterpluginexample">
+
+    <!-- The INTERNET permission is required for development. Specifically,
+         flutter needs it to communicate with the running application
+         to allow setting breakpoints, to provide hot reload, etc.
+    -->
+    <uses-permission android:name="android.permission.INTERNET"/>
+
+    <!-- io.flutter.app.FlutterApplication is an android.app.Application that
+         calls FlutterMain.startInitialization(this); in its onCreate method.
+         In most cases you can leave this as-is, but you if you want to provide
+         additional functionality it is fine to subclass or reimplement
+         FlutterApplication and put your custom class here. -->
+    <application
+        android:name="io.flutter.app.FlutterApplication"
+        android:label="flutter_plugin_example"
+        android:icon="@mipmap/ic_launcher">
+        <activity
+            android:name=".MainActivity"
+            android:launchMode="singleTop"
+            android:theme="@style/LaunchTheme"
+            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density"
+            android:hardwareAccelerated="true"
+            android:windowSoftInputMode="adjustResize">
+            <!-- This keeps the window background of the activity showing
+                 until Flutter renders its first frame. It can be removed if
+                 there is no splash screen (such as the default splash screen
+                 defined in @style/LaunchTheme). -->
+            <meta-data
+                android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
+                android:value="true" />
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN"/>
+                <category android:name="android.intent.category.LAUNCHER"/>
+            </intent-filter>
+        </activity>
+    </application>
+</manifest>
diff --git a/example/flutter_plugin/example/android/app/src/main/java/com/pichillilorenzo/flutterpluginexample/MainActivity.java b/example/flutter_plugin/example/android/app/src/main/java/com/pichillilorenzo/flutterpluginexample/MainActivity.java
new file mode 100644
index 0000000..98ae063
--- /dev/null
+++ b/example/flutter_plugin/example/android/app/src/main/java/com/pichillilorenzo/flutterpluginexample/MainActivity.java
@@ -0,0 +1,13 @@
+package com.pichillilorenzo.flutterpluginexample;
+
+import android.os.Bundle;
+import io.flutter.app.FlutterActivity;
+import io.flutter.plugins.GeneratedPluginRegistrant;
+
+public class MainActivity extends FlutterActivity {
+  @Override
+  protected void onCreate(Bundle savedInstanceState) {
+    super.onCreate(savedInstanceState);
+    GeneratedPluginRegistrant.registerWith(this);
+  }
+}
diff --git a/example/flutter_plugin/example/android/app/src/main/res/drawable/launch_background.xml b/example/flutter_plugin/example/android/app/src/main/res/drawable/launch_background.xml
new file mode 100644
index 0000000..304732f
--- /dev/null
+++ b/example/flutter_plugin/example/android/app/src/main/res/drawable/launch_background.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Modify this file to customize your launch splash screen -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@android:color/white" />
+
+    <!-- You can insert your own image assets here -->
+    <!-- <item>
+        <bitmap
+            android:gravity="center"
+            android:src="@mipmap/launch_image" />
+    </item> -->
+</layer-list>
diff --git a/example/flutter_plugin/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/example/flutter_plugin/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29
GIT binary patch
literal 544
zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G}
zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc
zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs
zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U<k`UN+s5qQ#T?KrmN7v*f2L%`GO4-^
z(#_kX+jhyc?*UrsvLED<w+p3gfi4y<3GxeO5CDRJfCLa|I1d8%B?X@R0!qL1ba4!c
zIQ;g^b-pGC0f)elH+vJ_clF3>|N3vA*22N<t#oc3|FNCx%`Ll}Jbl*Q`}yg~1ZO@=
zF!6p)NTYsh!6(JdtLiRuwi@`&XeqAXe9fY|=kfFy_3t|md##(iHE+K4ydxH3>aGQG
zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#i<K@6w~yiZZH!59hqLTYF-H
zp0%uz(2~z(X$>qdw@AL`7MR}m`rwr|mZgU`8P7SB<Kba6`>kL78fFf!WnuYWm$5Z0
zNXhDbCv&49sM544K|?c)WrFfiZ<W8RzO1)p=v7f>vCi9h0O)B3Pgg&ebxsLQ05GG~
AQ2+n{

literal 0
HcmV?d00001

diff --git a/example/flutter_plugin/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/example/flutter_plugin/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be
GIT binary patch
literal 442
zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk?
zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB
zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q0<?|W-^A&VhjhO+044$%!YxiPI;`p4Q#=k
za-F;6dk-j1J*_nBlG2>3KywUtLX8Ua?`H+NMzkczFPK3<KtaL4z@UHr{Pp|KpFjT|
z1oAia3j-A_^>lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l
zyt<ns@%x_-ezPmiS-=02Ut8`WUGa5ad?jb?UB<rkVmAJ)*Xy}nR&U>Q?X=U+MF$@3
zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+
yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@U<OZDKbLh*2~7avPrJzg

literal 0
HcmV?d00001

diff --git a/example/flutter_plugin/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/example/flutter_plugin/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..09d4391482be68e9e4a07fab769b5de337d16eb1
GIT binary patch
literal 721
zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD3?#3*wSy!iOI#yLg7ec#$`gxH85~pclTsBt
za}(23gHjVyDhp4h+5i=O3-AeX1=1l$e`s#|#^}+&7(N@w0CIr{$Oe+Uk^K-ZP~83C
zcc@hG6rikF&NPT(23>y!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs
z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM
zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R`
zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM
zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg
z<JnHTOuK%sGbNji)8cv6*ZNtnbwxJZ-?eY1e-ZPG#r<}_kct2Ie>oq1^2_p9@|WEo
z*X_Uko@K)qYYv~<poG`LOv(2(Hhkk{Dz;b6_#4<(=XBwh@>>43eQGMdbiGbo>E~Q&
zr<n4_y=h^-h|%}kO&jwCioQ5EzF6K8^VdP)H>YBH{QP^@Sti!`2)uG{irBBq@y*$B
zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N
zdG@vOZB4v_lF7Plrx+hxo7(fCV&}f<lyK#S=nvDw%*y%vwN3psIS+1s7G}QfbZGd|
zV;VoMy*YI2-%hU{-w$hl9!*Y_m~60h&vVVs6)lfgu09v4QWIt25UBGxaN`?mVmn*e
U?z!!Jz`$qlboFyt=akR{0C)T?>Hq)$

literal 0
HcmV?d00001

diff --git a/example/flutter_plugin/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/example/flutter_plugin/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c
GIT binary patch
literal 1031
zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{(
zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xj&#3c(B0U1_%
zz5^97Xt*<I`!eYGGw1~|=m#_ChcFm~F&M`%SZ6TU=QA3HGn&RTnk6urCox*3Gg@ad
z+GI1@<S^O-Q7)rh9;1CBqhm3nV+o^EDWh`*qe~T|Yc-==4WnBvqgx%LdmW=k1EWVH
zqbCqGF?u#LdbTinH8Xm(F#5DJ`gAb*0#PTUUpJ#)52HU2^)d$ZF$VTC22NlMoX8kB
zi7{v*V-S#>%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3
zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc
z$|q_opQ^2TrnVZ0o~wh<3t%W&f<tNc(Fvx&VC63f@(X4V5O7Fnm=6N`&!0cPZsO%v
z3=B;Ao-U3d6}R4ANDmGU6lr~^!Nn0K;_9?HfJbVIkW)*G%Yg&F)*BmaZ)6Dl_&?vn
za8gV0`@6<5-|YBa|J|21FVarliS1gU$698&iU*DCL=pdt&mR>lvYGe#$xqda2bR_R
zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2<a5l9V~;L&ZJD?F
zD6?3<TgqciA=l+!=Lp=a%2;%{dX@{HT-OP1|K<}HAM1TO7OY<MaYyH#Pk)4WR?Ts}
zSNX4tLr#6-^m$z!Pd18IzSivQkh7k6T`o7OKThT4#m*F4b=OPt(kAX%9+=X!JT9f}
zc|=Oray6sl!J;#tXm&@~>^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2
z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b
z<q`EIyVgP^b`|@{uDX5oB6GTR%^Or)?eBf<KkJg@eR6BbGYJ*-U;nQCudos6R9mG`
zc=6fn-^`2s)0Hm%cpbX>pQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE
z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o
zo~|9<SN`RwE}r7KC~Q%?|CMD5O&m%cKw{Bn6{qJbmFIooO_;g=+H+v4V(@hJb6Mw<
G&;$S>I;xof

literal 0
HcmV?d00001

diff --git a/example/flutter_plugin/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/example/flutter_plugin/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0
GIT binary patch
literal 1443
zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`Y<EGuRA6NX2Md
zPqmGQbJPjRLrI#9?bL25ZHra>V6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY
zB_M<hJUv`}aj#i9>sH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv
za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8<s&Q-yp4r*9
z(t|8L&`vhm$wAg!MByQdFQW1h)eqSS&@P++v^xmx2}OHF$WDZ4QHUN37S3Sd0#=@|
zD*$YR!8QbJ55gWH>=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~<G>Lo9vl;Zfs+W#BydUw
zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3
z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w!
zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u
zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%<BT_6>4Q8~Mad
z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt*
zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW
zu72MW`|?8h<N~B$l%}NU6KvLZj~&>t^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w
z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf<
zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$
zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v
zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq
z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek
zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+
zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q
zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl
z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f
z<NEXJGYh+`9LE^Z1#g~OZ)yl?O>%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H
zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP
z(1P?z<YzdcoCZ;A^sD<`wcO1=DLw>~7YxD~Rf<<Lt&2H?f`^~9TW?0O(WnyXeZvF-
hHxv6WEXUT@T$j&O|7sZ6iSVC<kf$5l^{TT-@h=>(a@_y`

literal 0
HcmV?d00001

diff --git a/example/flutter_plugin/example/android/app/src/main/res/values/styles.xml b/example/flutter_plugin/example/android/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..00fa441
--- /dev/null
+++ b/example/flutter_plugin/example/android/app/src/main/res/values/styles.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
+        <!-- Show a splash screen on the activity. Automatically removed when
+             Flutter draws its first frame -->
+        <item name="android:windowBackground">@drawable/launch_background</item>
+    </style>
+</resources>
diff --git a/example/flutter_plugin/example/android/build.gradle b/example/flutter_plugin/example/android/build.gradle
new file mode 100644
index 0000000..d4225c7
--- /dev/null
+++ b/example/flutter_plugin/example/android/build.gradle
@@ -0,0 +1,29 @@
+buildscript {
+    repositories {
+        google()
+        jcenter()
+    }
+
+    dependencies {
+        classpath 'com.android.tools.build:gradle:3.1.2'
+    }
+}
+
+allprojects {
+    repositories {
+        google()
+        jcenter()
+    }
+}
+
+rootProject.buildDir = '../build'
+subprojects {
+    project.buildDir = "${rootProject.buildDir}/${project.name}"
+}
+subprojects {
+    project.evaluationDependsOn(':app')
+}
+
+task clean(type: Delete) {
+    delete rootProject.buildDir
+}
diff --git a/example/flutter_plugin/example/android/gradle.properties b/example/flutter_plugin/example/android/gradle.properties
new file mode 100644
index 0000000..8bd86f6
--- /dev/null
+++ b/example/flutter_plugin/example/android/gradle.properties
@@ -0,0 +1 @@
+org.gradle.jvmargs=-Xmx1536M
diff --git a/example/flutter_plugin/example/android/gradle/wrapper/gradle-wrapper.properties b/example/flutter_plugin/example/android/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..9372d0f
--- /dev/null
+++ b/example/flutter_plugin/example/android/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Fri Jun 23 08:50:38 CEST 2017
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
diff --git a/example/flutter_plugin/example/android/settings.gradle b/example/flutter_plugin/example/android/settings.gradle
new file mode 100644
index 0000000..5a2f14f
--- /dev/null
+++ b/example/flutter_plugin/example/android/settings.gradle
@@ -0,0 +1,15 @@
+include ':app'
+
+def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
+
+def plugins = new Properties()
+def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
+if (pluginsFile.exists()) {
+    pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
+}
+
+plugins.each { name, path ->
+    def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
+    include ":$name"
+    project(":$name").projectDir = pluginDirectory
+}
diff --git a/example/flutter_plugin/example/ios/Flutter/AppFrameworkInfo.plist b/example/flutter_plugin/example/ios/Flutter/AppFrameworkInfo.plist
new file mode 100644
index 0000000..9367d48
--- /dev/null
+++ b/example/flutter_plugin/example/ios/Flutter/AppFrameworkInfo.plist
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+  <key>CFBundleDevelopmentRegion</key>
+  <string>en</string>
+  <key>CFBundleExecutable</key>
+  <string>App</string>
+  <key>CFBundleIdentifier</key>
+  <string>io.flutter.flutter.app</string>
+  <key>CFBundleInfoDictionaryVersion</key>
+  <string>6.0</string>
+  <key>CFBundleName</key>
+  <string>App</string>
+  <key>CFBundlePackageType</key>
+  <string>FMWK</string>
+  <key>CFBundleShortVersionString</key>
+  <string>1.0</string>
+  <key>CFBundleSignature</key>
+  <string>????</string>
+  <key>CFBundleVersion</key>
+  <string>1.0</string>
+  <key>MinimumOSVersion</key>
+  <string>8.0</string>
+</dict>
+</plist>
diff --git a/example/flutter_plugin/example/ios/Flutter/Debug.xcconfig b/example/flutter_plugin/example/ios/Flutter/Debug.xcconfig
new file mode 100644
index 0000000..1fce94d
--- /dev/null
+++ b/example/flutter_plugin/example/ios/Flutter/Debug.xcconfig
@@ -0,0 +1,3 @@
+#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
+#include "Generated.xcconfig"
+FLUTTER_BUILD_MODE=debug
\ No newline at end of file
diff --git a/example/flutter_plugin/example/ios/Flutter/Release.xcconfig b/example/flutter_plugin/example/ios/Flutter/Release.xcconfig
new file mode 100644
index 0000000..399e934
--- /dev/null
+++ b/example/flutter_plugin/example/ios/Flutter/Release.xcconfig
@@ -0,0 +1,2 @@
+#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
+#include "Generated.xcconfig"
diff --git a/example/flutter_plugin/example/ios/Podfile b/example/flutter_plugin/example/ios/Podfile
new file mode 100644
index 0000000..2dfb501
--- /dev/null
+++ b/example/flutter_plugin/example/ios/Podfile
@@ -0,0 +1,65 @@
+# Uncomment this line to define a global platform for your project
+# platform :ios, '9.0'
+
+# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
+ENV['COCOAPODS_DISABLE_STATS'] = 'true'
+
+def parse_KV_file(file, separator='=')
+  file_abs_path = File.expand_path(file)
+  if !File.exists? file_abs_path
+    return [];
+  end
+  pods_ary = []
+  skip_line_start_symbols = ["#", "/"]
+  File.foreach(file_abs_path) { |line|
+      next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ }
+      plugin = line.split(pattern=separator)
+      if plugin.length == 2
+        podname = plugin[0].strip()
+        path = plugin[1].strip()
+        podpath = File.expand_path("#{path}", file_abs_path)
+        pods_ary.push({:name => podname, :path => podpath});
+      else
+        puts "Invalid plugin specification: #{line}"
+      end
+  }
+  return pods_ary
+end
+
+target 'Runner' do
+  use_frameworks!
+
+  # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock
+  # referring to absolute paths on developers' machines.
+  system('rm -rf .symlinks')
+  system('mkdir -p .symlinks/plugins')
+
+  # Flutter Pods
+  generated_xcode_build_settings = parse_KV_file('./Flutter/Generated.xcconfig')
+  if generated_xcode_build_settings.empty?
+    puts "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter packages get is executed first."
+  end
+  generated_xcode_build_settings.map { |p|
+    if p[:name] == 'FLUTTER_FRAMEWORK_DIR'
+      symlink = File.join('.symlinks', 'flutter')
+      File.symlink(File.dirname(p[:path]), symlink)
+      pod 'Flutter', :path => File.join(symlink, File.basename(p[:path]))
+    end
+  }
+
+  # Plugin Pods
+  plugin_pods = parse_KV_file('../.flutter-plugins')
+  plugin_pods.map { |p|
+    symlink = File.join('.symlinks', 'plugins', p[:name])
+    File.symlink(p[:path], symlink)
+    pod p[:name], :path => File.join(symlink, 'ios')
+  }
+end
+
+post_install do |installer|
+  installer.pods_project.targets.each do |target|
+    target.build_configurations.each do |config|
+      config.build_settings['ENABLE_BITCODE'] = 'NO'
+    end
+  end
+end
diff --git a/example/flutter_plugin/example/ios/Runner.xcodeproj/project.pbxproj b/example/flutter_plugin/example/ios/Runner.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..23216f5
--- /dev/null
+++ b/example/flutter_plugin/example/ios/Runner.xcodeproj/project.pbxproj
@@ -0,0 +1,509 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
+		2D5378261FAA1A9400D5DBA9 /* flutter_assets in Resources */ = {isa = PBXBuildFile; fileRef = 2D5378251FAA1A9400D5DBA9 /* flutter_assets */; };
+		3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
+		3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; };
+		3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+		74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
+		9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; };
+		9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+		9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; };
+		97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
+		97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
+		97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
+		DB2612FCD79CFD30D1ED676B /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C43B270A1396F896DC0446C6 /* Pods_Runner.framework */; };
+		ED5EF107214FEBA60065FD45 /* Storyboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = ED5EF106214FEBA60065FD45 /* Storyboard.storyboard */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		9705A1C41CF9048500538489 /* Embed Frameworks */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 10;
+			files = (
+				3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */,
+				9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */,
+			);
+			name = "Embed Frameworks";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
+		1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
+		2D5378251FAA1A9400D5DBA9 /* flutter_assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = flutter_assets; path = Flutter/flutter_assets; sourceTree = SOURCE_ROOT; };
+		3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
+		3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = "<group>"; };
+		74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
+		74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
+		7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
+		9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
+		9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
+		9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = "<group>"; };
+		97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
+		97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
+		97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
+		97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		C43B270A1396F896DC0446C6 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+		ED5EF106214FEBA60065FD45 /* Storyboard.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Storyboard.storyboard; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		97C146EB1CF9000F007C117D /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */,
+				3B80C3941E831B6300D905FE /* App.framework in Frameworks */,
+				DB2612FCD79CFD30D1ED676B /* Pods_Runner.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		1370AF27C0FCD5A746BF55B6 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				C43B270A1396F896DC0446C6 /* Pods_Runner.framework */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
+		5BC6EF24EEA526A3E6F37537 /* Pods */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = Pods;
+			sourceTree = "<group>";
+		};
+		9740EEB11CF90186004384FC /* Flutter */ = {
+			isa = PBXGroup;
+			children = (
+				2D5378251FAA1A9400D5DBA9 /* flutter_assets */,
+				3B80C3931E831B6300D905FE /* App.framework */,
+				3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
+				9740EEBA1CF902C7004384FC /* Flutter.framework */,
+				9740EEB21CF90195004384FC /* Debug.xcconfig */,
+				7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
+				9740EEB31CF90195004384FC /* Generated.xcconfig */,
+			);
+			name = Flutter;
+			sourceTree = "<group>";
+		};
+		97C146E51CF9000F007C117D = {
+			isa = PBXGroup;
+			children = (
+				9740EEB11CF90186004384FC /* Flutter */,
+				97C146F01CF9000F007C117D /* Runner */,
+				97C146EF1CF9000F007C117D /* Products */,
+				5BC6EF24EEA526A3E6F37537 /* Pods */,
+				1370AF27C0FCD5A746BF55B6 /* Frameworks */,
+			);
+			sourceTree = "<group>";
+		};
+		97C146EF1CF9000F007C117D /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				97C146EE1CF9000F007C117D /* Runner.app */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		97C146F01CF9000F007C117D /* Runner */ = {
+			isa = PBXGroup;
+			children = (
+				97C146FA1CF9000F007C117D /* Main.storyboard */,
+				97C146FD1CF9000F007C117D /* Assets.xcassets */,
+				97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
+				97C147021CF9000F007C117D /* Info.plist */,
+				97C146F11CF9000F007C117D /* Supporting Files */,
+				1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
+				1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
+				74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
+				74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
+				ED5EF106214FEBA60065FD45 /* Storyboard.storyboard */,
+			);
+			path = Runner;
+			sourceTree = "<group>";
+		};
+		97C146F11CF9000F007C117D /* Supporting Files */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = "Supporting Files";
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		97C146ED1CF9000F007C117D /* Runner */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
+			buildPhases = (
+				3410A771F369E256652931DE /* [CP] Check Pods Manifest.lock */,
+				9740EEB61CF901F6004384FC /* Run Script */,
+				97C146EA1CF9000F007C117D /* Sources */,
+				97C146EB1CF9000F007C117D /* Frameworks */,
+				97C146EC1CF9000F007C117D /* Resources */,
+				9705A1C41CF9048500538489 /* Embed Frameworks */,
+				3B06AD1E1E4923F5004D2608 /* Thin Binary */,
+				C682215FBA770A2F10789415 /* [CP] Embed Pods Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = Runner;
+			productName = Runner;
+			productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
+			productType = "com.apple.product-type.application";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		97C146E61CF9000F007C117D /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastUpgradeCheck = 0910;
+				ORGANIZATIONNAME = "The Chromium Authors";
+				TargetAttributes = {
+					97C146ED1CF9000F007C117D = {
+						CreatedOnToolsVersion = 7.3.1;
+						DevelopmentTeam = PFP8UV45Y6;
+						LastSwiftMigration = 0910;
+					};
+				};
+			};
+			buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
+			compatibilityVersion = "Xcode 3.2";
+			developmentRegion = English;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				en,
+				Base,
+			);
+			mainGroup = 97C146E51CF9000F007C117D;
+			productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				97C146ED1CF9000F007C117D /* Runner */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+		97C146EC1CF9000F007C117D /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
+				3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
+				9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */,
+				97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
+				2D5378261FAA1A9400D5DBA9 /* flutter_assets in Resources */,
+				ED5EF107214FEBA60065FD45 /* Storyboard.storyboard in Resources */,
+				97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+		3410A771F369E256652931DE /* [CP] Check Pods Manifest.lock */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+				"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+				"${PODS_ROOT}/Manifest.lock",
+			);
+			name = "[CP] Check Pods Manifest.lock";
+			outputPaths = (
+				"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n    # print error to STDERR\n    echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n    exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+			showEnvVarsInLog = 0;
+		};
+		3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			name = "Thin Binary";
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin";
+		};
+		9740EEB61CF901F6004384FC /* Run Script */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			name = "Run Script";
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
+		};
+		C682215FBA770A2F10789415 /* [CP] Embed Pods Frameworks */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+				"${SRCROOT}/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
+				"${PODS_ROOT}/../.symlinks/flutter/ios-release/Flutter.framework",
+				"${BUILT_PRODUCTS_DIR}/flutter_plugin/flutter_plugin.framework",
+			);
+			name = "[CP] Embed Pods Frameworks";
+			outputPaths = (
+				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Flutter.framework",
+				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_plugin.framework",
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
+			showEnvVarsInLog = 0;
+		};
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		97C146EA1CF9000F007C117D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
+				1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+		97C146FA1CF9000F007C117D /* Main.storyboard */ = {
+			isa = PBXVariantGroup;
+			children = (
+				97C146FB1CF9000F007C117D /* Base */,
+			);
+			name = Main.storyboard;
+			sourceTree = "<group>";
+		};
+		97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
+			isa = PBXVariantGroup;
+			children = (
+				97C147001CF9000F007C117D /* Base */,
+			);
+			name = LaunchScreen.storyboard;
+			sourceTree = "<group>";
+		};
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+		97C147031CF9000F007C117D /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = dwarf;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				ENABLE_TESTABILITY = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"DEBUG=1",
+					"$(inherited)",
+				);
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+				MTL_ENABLE_DEBUG_INFO = YES;
+				ONLY_ACTIVE_ARCH = YES;
+				SDKROOT = iphoneos;
+				TARGETED_DEVICE_FAMILY = "1,2";
+			};
+			name = Debug;
+		};
+		97C147041CF9000F007C117D /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				ENABLE_NS_ASSERTIONS = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+				MTL_ENABLE_DEBUG_INFO = NO;
+				SDKROOT = iphoneos;
+				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
+				TARGETED_DEVICE_FAMILY = "1,2";
+				VALIDATE_PRODUCT = YES;
+			};
+			name = Release;
+		};
+		97C147061CF9000F007C117D /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CLANG_ENABLE_MODULES = YES;
+				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+				DEVELOPMENT_TEAM = PFP8UV45Y6;
+				ENABLE_BITCODE = NO;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/Flutter",
+				);
+				INFOPLIST_FILE = Runner/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/Flutter",
+				);
+				PRODUCT_BUNDLE_IDENTIFIER = com.pichillilorenzo.flutterPluginExample;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
+				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+				SWIFT_SWIFT3_OBJC_INFERENCE = On;
+				SWIFT_VERSION = 4.0;
+				VERSIONING_SYSTEM = "apple-generic";
+			};
+			name = Debug;
+		};
+		97C147071CF9000F007C117D /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CLANG_ENABLE_MODULES = YES;
+				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+				DEVELOPMENT_TEAM = PFP8UV45Y6;
+				ENABLE_BITCODE = NO;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/Flutter",
+				);
+				INFOPLIST_FILE = Runner/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/Flutter",
+				);
+				PRODUCT_BUNDLE_IDENTIFIER = com.pichillilorenzo.flutterPluginExample;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
+				SWIFT_SWIFT3_OBJC_INFERENCE = On;
+				SWIFT_VERSION = 4.0;
+				VERSIONING_SYSTEM = "apple-generic";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				97C147031CF9000F007C117D /* Debug */,
+				97C147041CF9000F007C117D /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				97C147061CF9000F007C117D /* Debug */,
+				97C147071CF9000F007C117D /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 97C146E61CF9000F007C117D /* Project object */;
+}
diff --git a/example/flutter_plugin/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/example/flutter_plugin/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..1d526a1
--- /dev/null
+++ b/example/flutter_plugin/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "group:Runner.xcodeproj">
+   </FileRef>
+</Workspace>
diff --git a/example/flutter_plugin/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/example/flutter_plugin/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
new file mode 100644
index 0000000..1263ac8
--- /dev/null
+++ b/example/flutter_plugin/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "0910"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "97C146ED1CF9000F007C117D"
+               BuildableName = "Runner.app"
+               BlueprintName = "Runner"
+               ReferencedContainer = "container:Runner.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      language = ""
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "97C146ED1CF9000F007C117D"
+            BuildableName = "Runner.app"
+            BlueprintName = "Runner"
+            ReferencedContainer = "container:Runner.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      language = ""
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "97C146ED1CF9000F007C117D"
+            BuildableName = "Runner.app"
+            BlueprintName = "Runner"
+            ReferencedContainer = "container:Runner.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "97C146ED1CF9000F007C117D"
+            BuildableName = "Runner.app"
+            BlueprintName = "Runner"
+            ReferencedContainer = "container:Runner.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>
diff --git a/example/flutter_plugin/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/example/flutter_plugin/example/ios/Runner.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..21a3cc1
--- /dev/null
+++ b/example/flutter_plugin/example/ios/Runner.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "group:Runner.xcodeproj">
+   </FileRef>
+   <FileRef
+      location = "group:Pods/Pods.xcodeproj">
+   </FileRef>
+</Workspace>
diff --git a/example/flutter_plugin/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/example/flutter_plugin/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..18d9810
--- /dev/null
+++ b/example/flutter_plugin/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>IDEDidComputeMac32BitWarning</key>
+	<true/>
+</dict>
+</plist>
diff --git a/example/flutter_plugin/example/ios/Runner/AppDelegate.swift b/example/flutter_plugin/example/ios/Runner/AppDelegate.swift
new file mode 100644
index 0000000..71cc41e
--- /dev/null
+++ b/example/flutter_plugin/example/ios/Runner/AppDelegate.swift
@@ -0,0 +1,13 @@
+import UIKit
+import Flutter
+
+@UIApplicationMain
+@objc class AppDelegate: FlutterAppDelegate {
+  override func application(
+    _ application: UIApplication,
+    didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?
+  ) -> Bool {
+    GeneratedPluginRegistrant.register(with: self)
+    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
+  }
+}
diff --git a/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 0000000..d36b1fa
--- /dev/null
+++ b/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,122 @@
+{
+  "images" : [
+    {
+      "size" : "20x20",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-20x20@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "20x20",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-20x20@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-29x29@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-29x29@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-29x29@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-40x40@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-40x40@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "60x60",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-60x60@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "60x60",
+      "idiom" : "iphone",
+      "filename" : "Icon-App-60x60@3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "20x20",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-20x20@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "20x20",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-20x20@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-29x29@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-29x29@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-40x40@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-40x40@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "76x76",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-76x76@1x.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "76x76",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-76x76@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "83.5x83.5",
+      "idiom" : "ipad",
+      "filename" : "Icon-App-83.5x83.5@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "1024x1024",
+      "idiom" : "ios-marketing",
+      "filename" : "Icon-App-1024x1024@1x.png",
+      "scale" : "1x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
diff --git a/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
new file mode 100644
index 0000000000000000000000000000000000000000..3d43d11e66f4de3da27ed045ca4fe38ad8b48094
GIT binary patch
literal 11112
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
P-1+_A+?hGkL;m(J7kc&K

literal 0
HcmV?d00001

diff --git a/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
new file mode 100644
index 0000000000000000000000000000000000000000..28c6bf03016f6c994b70f38d1b7346e5831b531f
GIT binary patch
literal 564
zcmV-40?Yl0P)<h;3K|Lk000e1NJLTq000yK000yS1^@s6jfou%00001b5ch_0Itp)
z=>Px$?ny*JR5%f>l)FnDQ543{x%ZCiu33$Wg!pQFfT_}?5Q|_VSlIbLC`dpoMXL}9
zHfd9&47Mo(7D231gb+kjFxZHS4-m~7WurTH&doVX2KI5sU4v(sJ1@T9eCIKPjsqSr
z)C01LsCxk=72-vXmX}CQD#BD;Cthymh&~=f$Q8nn0J<}ZrusBy4PvRNE}+1ceuj8u
z0mW5k8fmgeLnTbWHGwfKA3@PdZxhn|PypR&^p?weGftrtCbjF#+zk_5BJh7;0`#Wr
zgDpM_;Ax{jO##IrT`Oz;MvfwGfV$zD#c2xckpcXC6oou4ML~ezCc2EtnsQTB4tWNg
z?4bkf;hG7IMfhgNI(FV5Gs4|*GyMTIY0$B=_*mso9<WQhydS~rpwVfTyjm}~vs+Nj
zL2;<v%s@b+9jXc@S}#x@@VwF4twVwRxFCih^tWg?H)v?24ZSeYC3aaOsM8yWc7GEz
z7zKYq3)^d7srCATzmw!h1d8POV>Ityq$m^S>15>-?0(zQ<8Qy<_TjHE33(?_M8oaM
zyc;NxzRVK@DL6RJnX%U^xW0Gpg(lXp(!uK1v0YgHjs^ZXSQ|m#lV<y2`lV{mrphLz
zZs5NcIN~Wp-YgL)o*yksN!%A$BK4ovtf60)eD^OF((VmRH^fQ+0000<MNUMnLSTXr
Cg!*^@

literal 0
HcmV?d00001

diff --git a/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..2ccbfd967d9697cd4b83225558af2911e9571c9b
GIT binary patch
literal 1283
zcmV+e1^oJnP)<h;3K|Lk000e1NJLTq001Ze001Zm1^@s6jQ+T7000EaNkl<Zc$~$U
zO>7ip7{`C_J2Tx<S}3NqpxB^%g)f1Fg2os<-~kDV#FGRs+&p_AidZnjqZ&0H2nR1*
zj0q8l5fTo51w)j?(&7h*nm|&p(vR)ByR$QY4>Pmfw%h$|%acrYHt)Re^PB%O&&=~a
zhS(%I#+V>J-vjIib^<+s%ludY7y^C(P8nmqn9fp!i+?vr`bziDE=bx`%2W#Xyrj|i
z!XQ4v1%L`m{7KT7q+LZNB^h8Ha2e=`Wp65^0;J00)_^G=au=8Yo;1b`CV&@#=jIBo
zjN^JNVfYSs)+kDdGe7`1&8!?MQYKS?D<dJ!G*SVsfpkGU(q>uHZf3iogk_%#9E|5S
zWeHrmAo>P;ejX7mwq#*}W25m^ZI+{(Z8fI?4jM_fffY0nok=+88^|*_DwcW>mR#e+
z<Ez>X$F_KMdb6sRz!~7KkyN0G(3XQ+;z3X%PZ4gh;n-%62U<*VUKNv(D&<?Pa8X$2
z7!Cm2JRI`|2MxYb7DBni>Q->Na@Xb&u5Q3`3DGf+a8O5x7c#7+R+EAYl@R5us)CIw
z7sT@_y~Ao@uL#&^LIh&QceqiT^+lb0YbFZt_SHOtWA%mgPEKVNvVgCsXy{5+zl*X8
zCJe)Q@y>wH^>l4;h1l^Y*9%-23TSmE>q5nI@?mt%n;Sj4Qq`Z+ib)a*a^cJc%E9^J
zB;4s+K@rARbcBLT5P=@r;IVnBMKvT*)ew*R;&8vu%?Z&S>s?8?)3*YawM0P4!q$Kv
zMmKh3lgE~&w&v%wVzH3Oe=jeNT=n@Y6J6TdHWTjXfX~-=1A1Bw`EW8rn}MqeI34nh
zexFeA?&C3B2(E?0{drE@DA2pu(A#ElY&6el60Rn|Qpn-FkfQ8M93AfWIr)drgDFEU
zghdWK)^71EWCP(@(=c4kfH1Y(4iugD4fve6;nSUpLT%!)MUHs1!zJYy4y||C+SwQ!
z)KM&$7_tyM`sljP2fz6&Z;jxRn{Wup8IOUx8D4uh&(=<hAE@CMcU{$tA%YXI_aT>O
zx-7$a;U><*5L^!%<hgO?EU&+RjyvO7JjW1(jTP<<mHfpWO->xRlw)vAbh;sdlR||&
ze}8_8%)c2Fwy=F&H|LM+p{pZB5DKTx>Y?F1N%BlZkXf!}JeGuMZk~LPi7{cidvUGB
zAJ4LVeNV%XO>LTrklB#^-;8nb;}6l;1oW&WS=Mz*Az!4cqqQzbOSFq`$Q%PfD7srM
zpKgP-D_0XPTRX*hAqeq0TDkJ;5HB1%$3Np)99#1<DGLlIe;R_chCpIPcPAH*zr@Cs
z?fB^|EuMpG4X$HBVo_%sSAM_4?&DuFlF8#(Lxtca1NV%iv%qemMnJ<G_#|w%M>6c{
zJImlNL(np<oN+CTXIZs=Ip^Qn&FbY#Fn}>L!W|Gr_kxl1GVmF5&^$^YherS7+~q$p
zt}{a=*RiD2Ikv6o=IM1kgc7zqpaZ;OB)P!1zz*i3{U()Dq#jG)egvK}@uFLa`oyWZ
zf~=MV)|yJn`M^$N%ul5);JuQvaU1r2wt(}J_Qgyy`qWQI`hEeRX0uC@c1(dQ2}=U$
tNIIaX+dr)NRWXcxoR{>fqI{SF_dm1Ylv~=3YHI)h002ovPDHLkV1g(pWS;;4

literal 0
HcmV?d00001

diff --git a/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..f091b6b0bca859a3f474b03065bef75ba58a9e4c
GIT binary patch
literal 1588
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

literal 0
HcmV?d00001

diff --git a/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
new file mode 100644
index 0000000000000000000000000000000000000000..4cde12118dda48d71e01fcb589a74d069c5d7cb5
GIT binary patch
literal 1025
zcmV+c1pfPpP)<h;3K|Lk000e1NJLTq0012T0012b1^@s6R+DEB000BXNkl<Zc$~GD
zO=w(I6vuz}zV|Yjbed17ZK+8~s#O|MP&clmqDBgWZmLq<SX}r4y4TvKx^iJf5Gq-y
zOGQEjOCyP3MX4X5l~PNgieUPsktUPGBs1^bzl-}OnIxT=SE~o^V(z=|{La^$dmfUE
zBm*GnK}km>U6E9hRK9^#O7(mu>ETqrXGsduA8$)?`v2seloOCza43C{NQ$$<lg6i9
zl}<@|7r;n*02l>gAOH**MCn0Q?+L7dl7qnbRdqZ8LSVp1ItDxhxD?t@5_yHg6A8yI
zC*%Wgg22K|8E#!~c<Gji=2TnCP5=vx8A($>TNYR~@Y9Kep<iQi*1HiJn2AMS!E&HK
zVnfa>MPrrB8cABapAFa=`H+UGhkXUZV1GnwR1*lPyZ;*K(i~2gp|@bzp8}og7e*#%
zEnr|^CWdVV!-4*Y_7rFvlww2Ze+>j*!Z!pQ?2l->4q#nqRu9`ELo6RMS5=br47g_X
zRw}P9a7RRYQ%2Vsd0Me{_(EggTnuN6j=-?uFS6j^u69elMypu?t>op*wBx<=Wx8?(
ztpe^(fwM6jJX7M-l*k3kEpWOl_Vk3@(_w4oc}4YF<H6foEqi-Iie=wvW~+c5O@{fz
z15Zzj&L+qQPza&y;JLn#y}co!t)163;kCwx>4|Rt=<qKwceYzzPl3~A@%(s+$wlbO
zc~D^BY8jsH33#eIY*@)P+hFCz&o3t2+iBU*?19gIU*g-zge@(Wn_CP4Vk(AbwubEK
z374wAp49EV)x|L}FJ3uW;>2V^XU?#Yz`8(e?aZ@#li0n*=g^qOcVpd-Wbok=@b#Yw
zqn8u9a)z>l(1<yk<F_A9G0?W)jg&H7#tqwGWPN2m*&Q-?N5mfsA}|J<Z(-)UuQ+*R
zjGb?c@Yn1jfi)zqX5f~c$$GU_a(w7qiMP%R9Utb>kEaPYZ6hwubN6i<8QHgsu0oE)
ziJ(p;Wxm>sf!K+cw>R-(^Y2_bahB+&KI9y^);#0qt}t-$C|Bo71lHi{_+lg#f%RFy
z0um=e3$K3i6K{U_4K!EX<i!R0Z{NtsYrELo(c*J#)_6Q;B#i<)$v7hkaB2AVeLT(w
zU;Ip%kGwHqz-)1z`*v*RqZjUHU2}-Rka8<C(s3i{5#T7-ISo1qYYdC!WW~O<hQAkM
zTAD(la4CD$)8M0iM>?F&rExl^W|G8Z8;`5z-k}OGNZ0#WVb$WCpQu-_YsiqKP?BB#
vzVHS-CTUF4Ozn5G+mq_~Qqto~ahA+K`|lyv3(-e}00000NkvXXu0mjfd`9t{

literal 0
HcmV?d00001

diff --git a/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..d0ef06e7edb86cdfe0d15b4b0d98334a86163658
GIT binary patch
literal 1716
zcmds$`#;kQ7{|XelZftyR5~xW7?MLxS4^|Hw3&P7^y)@A9Fj{Xm1~_CIV^XZ%SLBn
zA;!r`GqGHg=7>xrB{?psZQs88ZaedDoagm^KF{a*>G|dJWRSe^I$DNW008I^+;Kjt
z>9p3GNR^I;v>5_`+91i(*G;u5|L+Bu6M=(afLjtkya#yZ175|z$pU~>2#^Z_pCZ7o
z1c6UNcv2B3?;<Go5WWQn|6+uH2_m2r5lB}%5TZuPR`V-CQi_n2Vq{<`GLVi8qN@j#
zqI`={L3C8G3I^(@3RHBhE;&c<RtGw!0)4Fxo!p8}d#c|cHc-(hHf$6dbHN{)B&J-6
z8CPP?l~^=?vruV^WG`2|w?$&vBC(2KTgB8_sZ6T`6J3jmsl%uYPl@SJV)#nyIF2<>
zX%qdxCXQp<sXX*V>dKRz=#b*q0P%b&o)5ZrNZt7$fiETSK_VaY=mb4GK`#~0K#~9^
zcY!`#Af+4h?UMR-gMKOmpuYeN5P*RKF!(tb`)oe0j2B<k6JOOEKm0v@7`o2xzafNf
z3ZX<HM12iqsu+Xris0NgGTIwip-5ILf*5aQWp8EWDyC!=Q!?hXjP-1SH7#S$$T+=I
zoW3be|GWDB>H1l?=>y#S5pMqkx6i{*=V9JF%>N8`ewGhRE(|WohnD59R^$_36{4>S
zDFlPC5|k?;SPsDo87!B{6*7eqmMdU|QZ84>6)Kd9wNfh90=y=TFQay-0__>=<4pk&
zYDjgIhL-jQ9o>z32K)BgAH+HxamL{ZL~ozu)Qqe@a`FpH=oQRA8=L-m-1dam(Ix2V
z?du;LdMO+ooBelr^_y4<euq@26~q7NegFU@k$`jdb$`xyeJ4P8+-Tj3Ra{hbRCmT!
zBMV($^{^e=(UH`dj`r@`Y(H|el`alrd8skZwkzYhRr(Gz(QZp(Qd(hE^@5E~qU`i;
z(SkYe?}g2Y&YJj296Moad2)yG0fTMR6U}BWMARc(<#Fztb!h_|mPqTik`s(WVh&f0
z?pxZ)BEP>{|44tmgH^2hSzPFd;U^!1p>6d|o)<M!d`#7E^t}^Xk~3cs-?nsZx|T{j
zmy5ZGo@mfoIbG>(-01z{i&Kj@)z-yfWQ)V#3Uo!_U}q3u`(fOs`_f^ueFii1xBNUB
z6Me<Ad__=MhyIK(Twff~+;!n_S-82~DqfzFOPkl&Gp}(|cUQyE@haMbYi+pu2R#52
zQ(?79{^}u<pnJs07X?Jd1xEs{hF)^P@+6Hdd>cwJN$CqV&vhc+)b(p4NzGGEgwWNs
z@*lUV6LaduZH)4_g!cE<2G6#+hJrWd5(|p1Z;YJ7ifVHv+n49btR}dq?HHDjl{m$T
z!jLZcGkb&XS2OG~u%&R$(X+Z`CWec%QKt>NGYvd5g20)PU(dOn^7%@6kQb}C(%=vr
z{?RP(z~C9DPnL{q^@pVw@|Vx~@3v!9dCaBtbh2EdtoNHm4kGxp>i#ct)7p|$QJs+U
z-a3qtcPvhihub?wnJqEt>zC@)2suY?%-96cYCm$Q8R%-8$PZYsx3~QOLMDf(piXMm
zB=<63yQk1AdOz#-qsEDX>>c)EES%$owHKue;?B3)8aRd}m~_)>SL3h2(9X;|+2#7X
z+#2)NpD%qJvCQ0a-uzZLmz*ms+l*N}w)3LRQ*6>|Ub-fyptY(keUxw+)jfwF5K{L9
z|Cl_w=`!l_o><384d&?)$6Nh(GAm=4p_;{qVn#hI8lqewW7~wUlyBM-4Z|)cZr?Rh
z=xZ&Ol>4(CU85ea(CZ^aO@2N18K>ftl8>2MqetAR53_JA>Fal`^)1Y--Am~UDa4th
zKfCYpcXky$XSFDWBMIl(q=Mxj$iMBX=|<EP6d-<IdS!f=-N7pvgRfUm7gq{u46xo{
z(betbRXvB#X1rgdf*#8+ETp0)ap9@+(t?IGTzEX?@U7?cr16G3E(5=(NmSno5Zt_R
J4_(fr{s-Hn_EP`=

literal 0
HcmV?d00001

diff --git a/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..dcdc2306c28505ebc0b6c3a359c4d252bf626b9f
GIT binary patch
literal 1920
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
GLSTY{`iRf~

literal 0
HcmV?d00001

diff --git a/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
new file mode 100644
index 0000000000000000000000000000000000000000..2ccbfd967d9697cd4b83225558af2911e9571c9b
GIT binary patch
literal 1283
zcmV+e1^oJnP)<h;3K|Lk000e1NJLTq001Ze001Zm1^@s6jQ+T7000EaNkl<Zc$~$U
zO>7ip7{`C_J2Tx<S}3NqpxB^%g)f1Fg2os<-~kDV#FGRs+&p_AidZnjqZ&0H2nR1*
zj0q8l5fTo51w)j?(&7h*nm|&p(vR)ByR$QY4>Pmfw%h$|%acrYHt)Re^PB%O&&=~a
zhS(%I#+V>J-vjIib^<+s%ludY7y^C(P8nmqn9fp!i+?vr`bziDE=bx`%2W#Xyrj|i
z!XQ4v1%L`m{7KT7q+LZNB^h8Ha2e=`Wp65^0;J00)_^G=au=8Yo;1b`CV&@#=jIBo
zjN^JNVfYSs)+kDdGe7`1&8!?MQYKS?D<dJ!G*SVsfpkGU(q>uHZf3iogk_%#9E|5S
zWeHrmAo>P;ejX7mwq#*}W25m^ZI+{(Z8fI?4jM_fffY0nok=+88^|*_DwcW>mR#e+
z<Ez>X$F_KMdb6sRz!~7KkyN0G(3XQ+;z3X%PZ4gh;n-%62U<*VUKNv(D&<?Pa8X$2
z7!Cm2JRI`|2MxYb7DBni>Q->Na@Xb&u5Q3`3DGf+a8O5x7c#7+R+EAYl@R5us)CIw
z7sT@_y~Ao@uL#&^LIh&QceqiT^+lb0YbFZt_SHOtWA%mgPEKVNvVgCsXy{5+zl*X8
zCJe)Q@y>wH^>l4;h1l^Y*9%-23TSmE>q5nI@?mt%n;Sj4Qq`Z+ib)a*a^cJc%E9^J
zB;4s+K@rARbcBLT5P=@r;IVnBMKvT*)ew*R;&8vu%?Z&S>s?8?)3*YawM0P4!q$Kv
zMmKh3lgE~&w&v%wVzH3Oe=jeNT=n@Y6J6TdHWTjXfX~-=1A1Bw`EW8rn}MqeI34nh
zexFeA?&C3B2(E?0{drE@DA2pu(A#ElY&6el60Rn|Qpn-FkfQ8M93AfWIr)drgDFEU
zghdWK)^71EWCP(@(=c4kfH1Y(4iugD4fve6;nSUpLT%!)MUHs1!zJYy4y||C+SwQ!
z)KM&$7_tyM`sljP2fz6&Z;jxRn{Wup8IOUx8D4uh&(=<hAE@CMcU{$tA%YXI_aT>O
zx-7$a;U><*5L^!%<hgO?EU&+RjyvO7JjW1(jTP<<mHfpWO->xRlw)vAbh;sdlR||&
ze}8_8%)c2Fwy=F&H|LM+p{pZB5DKTx>Y?F1N%BlZkXf!}JeGuMZk~LPi7{cidvUGB
zAJ4LVeNV%XO>LTrklB#^-;8nb;}6l;1oW&WS=Mz*Az!4cqqQzbOSFq`$Q%PfD7srM
zpKgP-D_0XPTRX*hAqeq0TDkJ;5HB1%$3Np)99#1<DGLlIe;R_chCpIPcPAH*zr@Cs
z?fB^|EuMpG4X$HBVo_%sSAM_4?&DuFlF8#(Lxtca1NV%iv%qemMnJ<G_#|w%M>6c{
zJImlNL(np<oN+CTXIZs=Ip^Qn&FbY#Fn}>L!W|Gr_kxl1GVmF5&^$^YherS7+~q$p
zt}{a=*RiD2Ikv6o=IM1kgc7zqpaZ;OB)P!1zz*i3{U()Dq#jG)egvK}@uFLa`oyWZ
zf~=MV)|yJn`M^$N%ul5);JuQvaU1r2wt(}J_Qgyy`qWQI`hEeRX0uC@c1(dQ2}=U$
tNIIaX+dr)NRWXcxoR{>fqI{SF_dm1Ylv~=3YHI)h002ovPDHLkV1g(pWS;;4

literal 0
HcmV?d00001

diff --git a/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..c8f9ed8f5cee1c98386d13b17e89f719e83555b2
GIT binary patch
literal 1895
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

literal 0
HcmV?d00001

diff --git a/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22
GIT binary patch
literal 2665
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
XsPq=LnkwKG00000NkvXXu0mjfhAk5^

literal 0
HcmV?d00001

diff --git a/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22
GIT binary patch
literal 2665
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
XsPq=LnkwKG00000NkvXXu0mjfhAk5^

literal 0
HcmV?d00001

diff --git a/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..75b2d164a5a98e212cca15ea7bf2ab5de5108680
GIT binary patch
literal 3831
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

literal 0
HcmV?d00001

diff --git a/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
new file mode 100644
index 0000000000000000000000000000000000000000..c4df70d39da7941ef3f6dcb7f06a192d8dcb308d
GIT binary patch
literal 1888
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
aR{jt9+;fr}hV%pg0000<MNUMnLSTYU=Zg*i

literal 0
HcmV?d00001

diff --git a/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..6a84f41e14e27f4b11f16f9ee39279ac98f8d5ac
GIT binary patch
literal 3294
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

literal 0
HcmV?d00001

diff --git a/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/example/flutter_plugin/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..d0e1f58536026aebc4f1f70e481f6993c9ff088d
GIT binary patch
literal 3612
zcmV+%4&(8OP)<h;3K|Lk000e1NJLTq005@|005^51^@s6bQVnP000f+Nkl<Zc-rmV
zdyo{>6$jw%VRuvdN2+38CZWny1cRtlsl+0_KtW)EU14Ei(F!UtWuj4IK+3{sK@>rh
zs1Z;=(DD&U6+tlyL?UnHVN^&g6QhFi2#HS+*qz;(>63G(`|jRtW|nz$Pv7qTovP!^
zP_jES{mr@O-02w%!^a?^1ZP!_KmQiz0L~jZ=W@Qt`8wzOoclQsAS<5YdH;a(4bGLE
zk8s}1If(PSIgVi!XE!5kA?~z*sobvNyohr;=Q_@h2@$6Flyej3J)D<to~RsKGZaW2
zl%{g~9M1bV-^=r$(@tibw2*<PJQniUSUHZ{ZqDCx_H!S99Z@D+m9ma=weuilhzFVK
z;sGP{4a+%hDc3O-v7WP09)GumpkY=i*N1X$blv$}4+s(N$T-JUEiz(e7^OuOb$Si?
zYB`N_nd{D{aSUS-Y1gq9!&D!)k&5<~%JrK#4*?~rsdDUFIH$__qheK5F5`UpZO#?0
zR}ccBI(UWi`|kG7Z<zf!cPTw31{?(C7=FpwLmlKRPzB~_&SnKB0&%=5DlV__1*ih^
zr>-6YfheRGl`HEcPk|~huT_2-U?PfL=4BPV)f1o!%rQ!NMt_MYw-5bUSwQ9Z&zC>u
zOrl~UJglJNa%f50Ok}?WB{on`Ci`p^Y!xBA?m@rcJXLxtrE0FhRF3d*ir>yzO|BD$
z3V}HpFcCh6bTzY}<y~3MdpUh31|Wpr{ij&w&pR$q>Nt_(W%QYd3NG)jJ4<`F<1Od)
zfQblTdC&h2lCz`>y?>|9o2CdvC8qZeIZt%jN;B7Hdn2l*k4M4MFEtq`q_<xjQ$3YI
zXgjK=Pu)Mp%0jB=yJUYD(ypFLuX%y;KO#J?m?AzpYSF8oWN7<m8QK<bzW#ZJ)_<I#
zPg||_(OCnaBI??!r-E~_t3gG0v0gbxea9CW8uMzBYBwZl_{Lzfep8YzUfV*`-fpAA
zDZ8p`fK#3qyrR>#5?}c$b$pf_3y{Y!cRDafZBEj-*OD|gz#PBDeu3QoueOesLzB+O
zxjf2wvf6Wwz>@AiOo2mO4=TkAV+g~%_n&R;)l#!cBxjuoD$aS-`IIJv7cdX%2{WT7
zOm%5rs(wqyPE^k5SIpUZ!&Lq4<~%{*>_Hu$2|~Xa;iX*tz8~G6O3uFOS?+)tWtdi|
zV2b#;z<Iap4-tT=1I|YU&Sk)fsa(UpbG^X%Hw;4&9eyZuFxB?*1A%i7dQL3m8sa=8
za2^CsY!~T>RN!m@H&jd=!$7YY6_}|=!IU@=SjvGDFtL;aCtw06U;-v^0%k0FOyESt
z1Wv$={b_H&8FiRV?MrzoHWd>%v6KTRU;-v^Miiz+@q`(BoT!+<37CKhoKb)|8!+RG
z6BQFU^@fRW;s8!mOf2QViKQGk0TVER6EG1`#;Nm39Do^PoT!+<37AD!%oJe86(=et
zZ~|sLzU>V-qYiU6V8$0GmU7_K8|Fd0B?+9Un1BhKAz#V~Fk^`mJtlCX#{^8^M8!me
z8Yg;8-~>!e<-iG;h*0B1kBKm}hItVGY6WnjVpgnTTAC$rqQ^v)4KvOtpY|sIj@WYg
zyw##ZZ5AC2IKNC;^hwg9BPk0w<GPe*oWCS6+_tlg#&1c|RojyEldZw!)!Xdn_r^C{
z=|GF6?GkSQrvESxGt5alT4^Z%%+bzcYzQF5?``DYKYXKjfwa<|qn6e!N1!+}ae?_(
zE7fkaKj<cYM`HjfKWJCKDM=Hzx6=M*tJD1i&O9(1Blec08|JW$_RkLbvDLX?rZu0^
z0>LStlmBr;E|$5GoAo$&Ui_;S9WY62n3)i49|T%C#i017z3J=$RF|KyZWnci*@lW4
z=AKhNN6+m`Q!V3Ye68|8y@%=am>YD0nG99M)NWc20%)gwO!96j7muR}Fr&54SxKP2
zP30S~lt=a*qDlbu3+Av57=9v&vr<6g0&`!8E2fq>I|EJGKs}t|{h7+KT@)LfIV-3K
zK)r_fr2?}FFyn*MYoLC>oV-J~eavL2ho4a4^r{E-8m2hi>~hA?_vIG4a*KT;2eyl1
zh_hUvUJpNCFwBvRq5BI*srSle>c6%n`#VNsyC|MGa{(P&08p=C9+WUw9Hl<1o9T4M
zdD=_C0F7#o8A_bRR?sFNmU0R6tW`ElnF8p53IdHo#S9(JoZCz}fHwJ6F<&?qrpVqE
zte|m%89JQD+XwaPU#%#lVs-@-OL<Ij=G$hfbj8dEbbt>);|MdfINd<SXJUq|_o2ru
z5T>6!Xw<ihB8gK4x^z#9?s><X)85qWqO(>P2h(eyafTUsoRkA%&@fe?<qS!28-5~*
zvs93!4nLKspmFUnBZ<>9m@jw-v(yTTiV2(*fthQH9}SqmsRPVnwwbV$1E(_lkmo&S
zF-truCU914_$jpqjr(>Ha4HkM4YMT>m~NosUu&UZ>zirfHo%N6PPs9^_o$WqPA0#5
z%tG>qFCL+b*0s?sZ;Sht0nE7Kl>OVXy=gjWxxK;OJ3yGd7-pZf7JYNcZo2*1SF`u6
zHJyRRxGw9mDlOiXqVMsNe#WX`fC`vrtjSQ%KmLcl(lC>ZOQzG^%iql2w-f_K@r?OE
zwCICifM#L-HJyc7Gm>Ern?+Sk3&|Khmu4(~3qa$(m6Ub^U0E5RHq49za|XklN#?kP
zl;EstdW?(_4D>kwjWy2f!LM)y?F94kyU3`W!6+AyId-89v}sXJpuic^NLL7GJItl~
zsiuB98AI-(#Mnm|=A-R6&2fwJ0JVS<K>Y#Q>&3$zFh|@;#%0qeF=j5Ajq@4i0tIIW
z&}sk$&fGwoJp<YSb05{zP9<aD?UZPEh|JLfr&2kU>e&u-JeGLi^r?dO`m=y(QO{@h
zQqAC7$rvz&5+mo3IqE?h=a~6<adrjN0!{!eXNu3ld_}<ALp1|$BIClFDN)ChdHsD3
z&WDeS^BABp-DUz#4=ZRp%s+fYHT|z6qu+IusGUaU@EJDFkq>m>%r5Quapvzq;{y~p
zJpyXOB<k_Zhg5z3Rb-qyff9pmBXh`|4$j#&&IW;Vo`Z8impJoJ@fqNZYZSW=Dq;3~
zdKXpqZ6xE&21;Cf6PcIZYU3QnIO_z?-!V>gD9VrW7@#p6l7O?o3feml(DtSL>D^R)
zZUY%T2b0-vBAFN7VB;M88!~HuOXi4KcI6aRQ&h|XQ0A?m%j2=l1f0cGP}h(oVfJ`N
zz#PpmFC*ieab)zJK<4?^k=g%OjPnkANzbAbmGZHoVRk*mTfm75s_cWVa`l*f$B@xu
z5E*?&@seIo#*Y~1rBm!7sF9~~u6Wrj5oICUOuz}CS)jdNIznfzCA(stJ(7$c^e5wN
z?lt>eYgbA!kvA<SbNrIBDrG@HBfQN7oW%ltzm2-DOwnmi{hMk;kIBQ2Irw%mM?GL;
zyy6KPW){*y&tb-CqaHYm=|MC02R;_ObBK)ow@_l>R7zYSD&*r1$b|(@;9dcZ^67R0
zXA<m+1Zt&e*0Swn)XifYi?Zir`dKAQ0U8yYhn?#<zqQCIe%AAEWl;zm0!a`!I{_UY
zEuaGD0pKhFsB`dVJ-;Ihv|0n85j)+kS>XJKa|5Sdmj!g578Nwt6d$sXuc&<j=Stx8
zu7c_cG(<I2I@~63J}7rfK&?!mD>MWezA0Whd`94$h{{?1IwXP4)Tx4obDK%xoFZ_Z
zjjHJ_P@R_e5blG@yEjnaJb`l;s%Lb2&=8$&Ct-fV`E^4CUs)=jTk!I}2d&n!f@)bm
z<qG~6Lk8ct21Ak8KrQWnW{0HVTAvRpi{oS!XLrsPS7}9fyu=F})mJPIENeJVxN->@
z_4Dc86+3l2*p|~;o-Sb~oXb_RuLmoifDU^&Te$*FevycC0*nE3Xws8gsWp|Rj2>SM
zns)qcYj?^2sd8?N!_w~4v+f-HCF|a$TNZDoNl$I1Uq87euoNgKb6&r26TNrfkUa@o
zfdiFA@p{K&mH3b8<cXYnl+uduFf=&$x^Ewe{7g>i!lcoz)V{n8Q@g(vR4ns4r6w;K
z>1~ecQR0-<^J|<Rqk19&7=n&CgSjc^AQh;ro>Ndg5fvVUM9g;lbu-){#ghGw(fg>L
zh)T5Lj<f%Ap5*v5ja(ts@?{;WC!&JA=2dyCW*(qV11O>b%lWE;V9L!;Cq<dvqm*9+
z!pr4c<Y#$@paQDrMa~bAyY~o$7t^_1jq3`ont7)8Uphai4bLmWgOHByIA%|?M4)p3
z6yYJvCDK>k>AV1(rULYF07ZBJbGb9qbSoLAd;in9{)95YqX$J43-dY7YU*k~vrM25
zxh5_IqO0LYZW%oxQ5HOzmk4x{atE*vipUk}sh88$b2tn?!ujEHn`tQLe&vo}nMb&{
zio`x<queg?4Q8GxzPr;$5PDIdbgiN<bM`1}yQmDH-IVKBbM6IFpd|a0%NuezsWecv
z5B&z`Z0h(*MTrzcQ#2#vLMc8VIajQvZX1DytBUp@`}>zZ&GG6&ZyN3jnaQy#iVq<z
z;5;MnYFWsz<lO#_Gu6M*#TG*bShdHP&a?W7ug;vxd5Vg%B12CZNE7Z?4&OeHa~kJn
z=aq&CUx;>XE9VT(3tWY$n-)uWDQ|tc{`?fq2F`oQ{;d3aWPg4Hp-(iE{ry>MIPWL>
iW8<gh+O_c$<^KU|CL^wifJ#dM0000<MNUMnLSTXhq|Ai?

literal 0
HcmV?d00001

diff --git a/example/flutter_plugin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/example/flutter_plugin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
new file mode 100644
index 0000000..0bedcf2
--- /dev/null
+++ b/example/flutter_plugin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "LaunchImage.png",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "LaunchImage@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "LaunchImage@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
diff --git a/example/flutter_plugin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/example/flutter_plugin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
new file mode 100644
index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838
GIT binary patch
literal 68
zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J
Q1PU{Fy85}Sb4q9e0B4a5jsO4v

literal 0
HcmV?d00001

diff --git a/example/flutter_plugin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/example/flutter_plugin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838
GIT binary patch
literal 68
zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J
Q1PU{Fy85}Sb4q9e0B4a5jsO4v

literal 0
HcmV?d00001

diff --git a/example/flutter_plugin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/example/flutter_plugin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
new file mode 100644
index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838
GIT binary patch
literal 68
zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J
Q1PU{Fy85}Sb4q9e0B4a5jsO4v

literal 0
HcmV?d00001

diff --git a/example/flutter_plugin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/example/flutter_plugin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
new file mode 100644
index 0000000..89c2725
--- /dev/null
+++ b/example/flutter_plugin/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
@@ -0,0 +1,5 @@
+# Launch Screen Assets
+
+You can customize the launch screen with your own desired assets by replacing the image files in this directory.
+
+You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
\ No newline at end of file
diff --git a/example/flutter_plugin/example/ios/Runner/Base.lproj/LaunchScreen.storyboard b/example/flutter_plugin/example/ios/Runner/Base.lproj/LaunchScreen.storyboard
new file mode 100644
index 0000000..f2e259c
--- /dev/null
+++ b/example/flutter_plugin/example/ios/Runner/Base.lproj/LaunchScreen.storyboard
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16G29" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
+    </dependencies>
+    <scenes>
+        <!--View Controller-->
+        <scene sceneID="EHf-IW-A2E">
+            <objects>
+                <viewController id="01J-lp-oVM" sceneMemberID="viewController">
+                    <layoutGuides>
+                        <viewControllerLayoutGuide type="top" id="Ydg-fD-yQy"/>
+                        <viewControllerLayoutGuide type="bottom" id="xbc-2k-c8Z"/>
+                    </layoutGuides>
+                    <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4">
+                            </imageView>
+                        </subviews>
+                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <constraints>
+                            <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="1a2-6s-vTC"/>
+                            <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="4X2-HB-R7a"/>
+                        </constraints>
+                    </view>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="53" y="375"/>
+        </scene>
+    </scenes>
+    <resources>
+        <image name="LaunchImage" width="168" height="185"/>
+    </resources>
+</document>
diff --git a/example/flutter_plugin/example/ios/Runner/Base.lproj/Main.storyboard b/example/flutter_plugin/example/ios/Runner/Base.lproj/Main.storyboard
new file mode 100644
index 0000000..f3c2851
--- /dev/null
+++ b/example/flutter_plugin/example/ios/Runner/Base.lproj/Main.storyboard
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
+    </dependencies>
+    <scenes>
+        <!--Flutter View Controller-->
+        <scene sceneID="tne-QT-ifu">
+            <objects>
+                <viewController id="BYZ-38-t0r" customClass="FlutterViewController" sceneMemberID="viewController">
+                    <layoutGuides>
+                        <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
+                        <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
+                    </layoutGuides>
+                    <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
+                        <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+                    </view>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
+            </objects>
+        </scene>
+    </scenes>
+</document>
diff --git a/example/flutter_plugin/example/ios/Runner/Info.plist b/example/flutter_plugin/example/ios/Runner/Info.plist
new file mode 100644
index 0000000..ca4d58e
--- /dev/null
+++ b/example/flutter_plugin/example/ios/Runner/Info.plist
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleExecutable</key>
+	<string>$(EXECUTABLE_NAME)</string>
+	<key>CFBundleIdentifier</key>
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>flutter_plugin_example</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>$(FLUTTER_BUILD_NAME)</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>$(FLUTTER_BUILD_NUMBER)</string>
+	<key>LSRequiresIPhoneOS</key>
+	<true/>
+	<key>UILaunchStoryboardName</key>
+	<string>LaunchScreen</string>
+	<key>UIMainStoryboardFile</key>
+	<string>Main</string>
+	<key>UISupportedInterfaceOrientations</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+	<key>UISupportedInterfaceOrientations~ipad</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationPortraitUpsideDown</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+	<key>UIViewControllerBasedStatusBarAppearance</key>
+	<false/>
+</dict>
+</plist>
diff --git a/example/flutter_plugin/example/ios/Runner/Runner-Bridging-Header.h b/example/flutter_plugin/example/ios/Runner/Runner-Bridging-Header.h
new file mode 100644
index 0000000..7335fdf
--- /dev/null
+++ b/example/flutter_plugin/example/ios/Runner/Runner-Bridging-Header.h
@@ -0,0 +1 @@
+#import "GeneratedPluginRegistrant.h"
\ No newline at end of file
diff --git a/example/flutter_plugin/example/ios/Runner/Storyboard.storyboard b/example/flutter_plugin/example/ios/Runner/Storyboard.storyboard
new file mode 100644
index 0000000..e1d3fb0
--- /dev/null
+++ b/example/flutter_plugin/example/ios/Runner/Storyboard.storyboard
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14113" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina4_7" orientation="portrait">
+        <adaptation id="fullscreen"/>
+    </device>
+    <dependencies>
+        <deployment version="4352" identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
+        <capability name="Constraints to layout margins" minToolsVersion="6.0"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <scenes>
+        <!--Test View Controller-->
+        <scene sceneID="xiR-wx-Ht4">
+            <objects>
+                <viewController storyboardIdentifier="viewController" id="w5o-1r-ztl" customClass="testViewController" customModule="flutter_plugin" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="3pE-eI-1rV">
+                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="4G5-YW-CEZ">
+                                <rect key="frame" x="187" y="333" width="1" height="1"/>
+                            </imageView>
+                            <wkWebView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ONy-C4-sn8">
+                                <rect key="frame" x="0.0" y="67" width="375" height="556"/>
+                                <color key="backgroundColor" red="0.36078431370000003" green="0.38823529410000002" blue="0.4039215686" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                <wkWebViewConfiguration key="configuration" applicationNameForUserAgent="">
+                                    <audiovisualMediaTypes key="mediaTypesRequiringUserActionForPlayback" none="YES"/>
+                                    <wkPreferences key="preferences"/>
+                                </wkWebViewConfiguration>
+                            </wkWebView>
+                            <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="iRf-ch-M0i">
+                                <rect key="frame" x="16" y="28" width="282" height="30"/>
+                                <nil key="textColor"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <textInputTraits key="textInputTraits"/>
+                            </textField>
+                            <toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="HyG-QT-tjb" userLabel="Toolbar Bottom">
+                                <rect key="frame" x="0.0" y="623" width="375" height="44"/>
+                                <items>
+                                    <barButtonItem title="Item" id="359-ig-ylG"/>
+                                    <barButtonItem style="plain" systemItem="flexibleSpace" id="1ya-Cm-F1Z"/>
+                                    <barButtonItem title="Item" id="YN0-dE-p4z"/>
+                                    <barButtonItem style="plain" systemItem="flexibleSpace" id="PNq-kF-ald"/>
+                                    <barButtonItem title="Item" id="FUe-lx-qB0"/>
+                                    <barButtonItem style="plain" systemItem="flexibleSpace" id="znd-ho-B3t"/>
+                                    <barButtonItem title="Item" id="iNe-xz-ZDA"/>
+                                </items>
+                            </toolbar>
+                            <button opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Frf-R3-rNK">
+                                <rect key="frame" x="318" y="28" width="37" height="30"/>
+                                <state key="normal" title="Done"/>
+                            </button>
+                        </subviews>
+                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <constraints>
+                            <constraint firstItem="HyG-QT-tjb" firstAttribute="leading" secondItem="ONy-C4-sn8" secondAttribute="leading" id="2QX-ft-PT2"/>
+                            <constraint firstItem="ONy-C4-sn8" firstAttribute="top" secondItem="iRf-ch-M0i" secondAttribute="bottom" constant="9" id="DVe-eJ-yxT"/>
+                            <constraint firstItem="iRf-ch-M0i" firstAttribute="leading" secondItem="3pE-eI-1rV" secondAttribute="leadingMargin" id="FYE-cT-1tg"/>
+                            <constraint firstItem="HyG-QT-tjb" firstAttribute="trailing" secondItem="ONy-C4-sn8" secondAttribute="trailing" id="LsE-Ta-WmY"/>
+                            <constraint firstItem="GGZ-A2-Pcv" firstAttribute="trailing" secondItem="ONy-C4-sn8" secondAttribute="trailing" id="NQ8-lr-CSE"/>
+                            <constraint firstItem="iRf-ch-M0i" firstAttribute="top" secondItem="GGZ-A2-Pcv" secondAttribute="top" constant="8" id="QzP-aY-oiu"/>
+                            <constraint firstItem="Frf-R3-rNK" firstAttribute="leading" secondItem="iRf-ch-M0i" secondAttribute="trailing" constant="20" id="Yup-0K-9ti"/>
+                            <constraint firstItem="4G5-YW-CEZ" firstAttribute="centerY" secondItem="3pE-eI-1rV" secondAttribute="centerY" id="ZKF-8s-rc6"/>
+                            <constraint firstItem="ONy-C4-sn8" firstAttribute="leading" secondItem="GGZ-A2-Pcv" secondAttribute="leading" id="are-m8-AVn"/>
+                            <constraint firstItem="GGZ-A2-Pcv" firstAttribute="bottom" secondItem="ONy-C4-sn8" secondAttribute="bottom" constant="44" id="g0t-ke-mBk"/>
+                            <constraint firstItem="4G5-YW-CEZ" firstAttribute="centerX" secondItem="GGZ-A2-Pcv" secondAttribute="centerX" id="nm4-B2-NOX"/>
+                            <constraint firstItem="iRf-ch-M0i" firstAttribute="top" secondItem="Frf-R3-rNK" secondAttribute="top" id="pmb-LB-KMe"/>
+                            <constraint firstItem="GGZ-A2-Pcv" firstAttribute="trailing" secondItem="Frf-R3-rNK" secondAttribute="trailing" constant="20" id="qET-GC-I2r"/>
+                            <constraint firstItem="HyG-QT-tjb" firstAttribute="top" secondItem="ONy-C4-sn8" secondAttribute="bottom" id="uNC-5i-LTJ"/>
+                        </constraints>
+                        <viewLayoutGuide key="safeArea" id="GGZ-A2-Pcv"/>
+                    </view>
+                    <connections>
+                        <outlet property="done" destination="Frf-R3-rNK" id="daX-rh-ujb"/>
+                        <outlet property="urlField" destination="iRf-ch-M0i" id="ihH-Ib-Xdi"/>
+                        <outlet property="webView" destination="ONy-C4-sn8" id="5UQ-7V-fve"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="2YP-Mz-mfm" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="552.77361319340332" y="-164"/>
+        </scene>
+    </scenes>
+    <resources>
+        <image name="LaunchImage" width="1" height="1"/>
+    </resources>
+</document>
diff --git a/example/flutter_plugin/example/lib/main.dart b/example/flutter_plugin/example/lib/main.dart
new file mode 100644
index 0000000..0cff52d
--- /dev/null
+++ b/example/flutter_plugin/example/lib/main.dart
@@ -0,0 +1,39 @@
+import 'package:flutter/material.dart';
+import 'dart:async';
+
+import 'package:flutter/services.dart';
+import 'package:flutter_plugin/flutter_plugin.dart';
+
+void main() => runApp(new MyApp());
+
+class MyApp extends StatefulWidget {
+  @override
+  _MyAppState createState() => new _MyAppState();
+}
+
+class _MyAppState extends State<MyApp> {
+  String _platformVersion = 'Unknown';
+
+  @override
+  void initState() {
+    super.initState();
+  }
+
+  @override
+  Widget build(BuildContext context) {
+    return new MaterialApp(
+      home: new Scaffold(
+        appBar: new AppBar(
+          title: const Text('Flutter InAppBrowser Plugin example app'),
+        ),
+        body: new Center(
+          child: new RaisedButton(onPressed: () {
+            FlutterPlugin.open();
+          },
+              child: Text("Open InAppBrowser")
+          ),
+        ),
+      ),
+    );
+  }
+}
diff --git a/example/flutter_plugin/example/pubspec.yaml b/example/flutter_plugin/example/pubspec.yaml
new file mode 100644
index 0000000..0efda10
--- /dev/null
+++ b/example/flutter_plugin/example/pubspec.yaml
@@ -0,0 +1,70 @@
+name: flutter_plugin_example
+description: Demonstrates how to use the flutter_plugin plugin.
+
+# The following defines the version and build number for your application.
+# A version number is three numbers separated by dots, like 1.2.43
+# followed by an optional build number separated by a +.
+# Both the version and the builder number may be overridden in flutter
+# build by specifying --build-name and --build-number, respectively.
+# Read more about versioning at semver.org.
+version: 1.0.0+1
+
+environment:
+  sdk: ">=2.0.0-dev.68.0 <3.0.0"
+
+dependencies:
+  flutter:
+    sdk: flutter
+
+  # The following adds the Cupertino Icons font to your application.
+  # Use with the CupertinoIcons class for iOS style icons.
+  cupertino_icons: ^0.1.2
+
+dev_dependencies:
+  flutter_test:
+    sdk: flutter
+
+  flutter_plugin:
+    path: ../
+
+# For information on the generic Dart part of this file, see the
+# following page: https://www.dartlang.org/tools/pub/pubspec
+
+# The following section is specific to Flutter.
+flutter:
+
+  # The following line ensures that the Material Icons font is
+  # included with your application, so that you can use the icons in
+  # the material Icons class.
+  uses-material-design: true
+
+  # To add assets to your application, add an assets section, like this:
+  # assets:
+  #  - images/a_dot_burr.jpeg
+  #  - images/a_dot_ham.jpeg
+
+  # An image asset can refer to one or more resolution-specific "variants", see
+  # https://flutter.io/assets-and-images/#resolution-aware.
+
+  # For details regarding adding assets from package dependencies, see
+  # https://flutter.io/assets-and-images/#from-packages
+
+  # To add custom fonts to your application, add a fonts section here,
+  # in this "flutter" section. Each entry in this list should have a
+  # "family" key with the font family name, and a "fonts" key with a
+  # list giving the asset and other descriptors for the font. For
+  # example:
+  # fonts:
+  #   - family: Schyler
+  #     fonts:
+  #       - asset: fonts/Schyler-Regular.ttf
+  #       - asset: fonts/Schyler-Italic.ttf
+  #         style: italic
+  #   - family: Trajan Pro
+  #     fonts:
+  #       - asset: fonts/TrajanPro.ttf
+  #       - asset: fonts/TrajanPro_Bold.ttf
+  #         weight: 700
+  #
+  # For details regarding fonts from package dependencies,
+  # see https://flutter.io/custom-fonts/#from-packages
diff --git a/example/flutter_plugin/example/test/widget_test.dart b/example/flutter_plugin/example/test/widget_test.dart
new file mode 100644
index 0000000..c5f8290
--- /dev/null
+++ b/example/flutter_plugin/example/test/widget_test.dart
@@ -0,0 +1,25 @@
+// This is a basic Flutter widget test.
+// To perform an interaction with a widget in your test, use the WidgetTester utility that Flutter
+// provides. For example, you can send tap and scroll gestures. You can also use WidgetTester to
+// find child widgets in the widget tree, read text, and verify that the values of widget properties
+// are correct.
+
+import 'package:flutter/material.dart';
+import 'package:flutter_test/flutter_test.dart';
+
+import 'package:flutter_plugin_example/main.dart';
+
+void main() {
+  testWidgets('Verify Platform version', (WidgetTester tester) async {
+    // Build our app and trigger a frame.
+    await tester.pumpWidget(new MyApp());
+
+    // Verify that platform version is retrieved.
+    expect(
+        find.byWidgetPredicate(
+          (Widget widget) =>
+              widget is Text && widget.data.startsWith('Running on:'),
+        ),
+        findsOneWidget);
+  });
+}
diff --git a/example/flutter_plugin/ios/.gitignore b/example/flutter_plugin/ios/.gitignore
new file mode 100644
index 0000000..710ec6c
--- /dev/null
+++ b/example/flutter_plugin/ios/.gitignore
@@ -0,0 +1,36 @@
+.idea/
+.vagrant/
+.sconsign.dblite
+.svn/
+
+.DS_Store
+*.swp
+profile
+
+DerivedData/
+build/
+GeneratedPluginRegistrant.h
+GeneratedPluginRegistrant.m
+
+.generated/
+
+*.pbxuser
+*.mode1v3
+*.mode2v3
+*.perspectivev3
+
+!default.pbxuser
+!default.mode1v3
+!default.mode2v3
+!default.perspectivev3
+
+xcuserdata
+
+*.moved-aside
+
+*.pyc
+*sync/
+Icon?
+.tags*
+
+/Flutter/Generated.xcconfig
diff --git a/example/flutter_plugin/ios/Assets/.gitkeep b/example/flutter_plugin/ios/Assets/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/example/flutter_plugin/ios/Classes/FlutterPlugin.h b/example/flutter_plugin/ios/Classes/FlutterPlugin.h
new file mode 100644
index 0000000..0798c8f
--- /dev/null
+++ b/example/flutter_plugin/ios/Classes/FlutterPlugin.h
@@ -0,0 +1,4 @@
+#import <Flutter/Flutter.h>
+
+@interface FlutterPlugin : NSObject<FlutterPlugin>
+@end
diff --git a/example/flutter_plugin/ios/Classes/FlutterPlugin.m b/example/flutter_plugin/ios/Classes/FlutterPlugin.m
new file mode 100644
index 0000000..13208f0
--- /dev/null
+++ b/example/flutter_plugin/ios/Classes/FlutterPlugin.m
@@ -0,0 +1,8 @@
+#import "FlutterPlugin.h"
+#import <flutter_plugin/flutter_plugin-Swift.h>
+
+@implementation FlutterPlugin
++ (void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar>*)registrar {
+  [SwiftFlutterPlugin registerWithRegistrar:registrar];
+}
+@end
diff --git a/example/flutter_plugin/ios/Classes/SwiftFlutterPlugin.swift b/example/flutter_plugin/ios/Classes/SwiftFlutterPlugin.swift
new file mode 100644
index 0000000..c60ff46
--- /dev/null
+++ b/example/flutter_plugin/ios/Classes/SwiftFlutterPlugin.swift
@@ -0,0 +1,45 @@
+import Flutter
+import UIKit
+import WebKit
+    
+public class SwiftFlutterPlugin: NSObject, Flutter.FlutterPlugin {
+  public static func register(with registrar: FlutterPluginRegistrar) {
+    let channel = FlutterMethodChannel(name: "flutter_plugin", binaryMessenger: registrar.messenger())
+    let instance = SwiftFlutterPlugin()
+    registrar.addMethodCallDelegate(instance, channel: channel)
+  }
+
+  public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
+    
+    let frame: CGRect = UIScreen.main.bounds
+    let tmpWindow = UIWindow(frame: frame)
+    let storyboard = UIStoryboard(name: "Storyboard", bundle: nil)
+    let vc = storyboard.instantiateViewController(withIdentifier: "viewController")
+    let tmpController = UIViewController()
+    let baseWindowLevel = UIApplication.shared.keyWindow?.windowLevel
+    tmpWindow.rootViewController = tmpController
+    tmpWindow.windowLevel = UIWindowLevel(baseWindowLevel! + 1)
+    tmpWindow.makeKeyAndVisible()
+    tmpController.present(vc, animated: true, completion: nil)
+    //tmpController.present(nav, animated: true) { () -> Void in }
+    result(true)
+  }
+}
+
+public class testViewController: UIViewController {
+    @IBOutlet var webView: WKWebView!
+    @IBOutlet var urlField: UITextField!
+    @IBOutlet var done: UIButton!
+    
+    public override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
+        super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
+    }
+    
+    required public init?(coder aDecoder: NSCoder) {
+        super.init(coder: aDecoder)
+    }
+    
+    override public func viewDidLoad() {
+        print("asdasdasd")
+    }
+}
diff --git a/example/flutter_plugin/ios/flutter_plugin.podspec b/example/flutter_plugin/ios/flutter_plugin.podspec
new file mode 100644
index 0000000..c28187c
--- /dev/null
+++ b/example/flutter_plugin/ios/flutter_plugin.podspec
@@ -0,0 +1,21 @@
+#
+# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html
+#
+Pod::Spec.new do |s|
+  s.name             = 'flutter_plugin'
+  s.version          = '0.0.1'
+  s.summary          = 'A new Flutter plugin.'
+  s.description      = <<-DESC
+A new Flutter plugin.
+                       DESC
+  s.homepage         = 'http://example.com'
+  s.license          = { :file => '../LICENSE' }
+  s.author           = { 'Your Company' => 'email@example.com' }
+  s.source           = { :path => '.' }
+  s.source_files = 'Classes/**/*'
+  s.public_header_files = 'Classes/**/*.h'
+  s.dependency 'Flutter'
+  
+  s.ios.deployment_target = '8.0'
+end
+
diff --git a/example/flutter_plugin/lib/flutter_plugin.dart b/example/flutter_plugin/lib/flutter_plugin.dart
new file mode 100644
index 0000000..5588bff
--- /dev/null
+++ b/example/flutter_plugin/lib/flutter_plugin.dart
@@ -0,0 +1,17 @@
+import 'dart:async';
+
+import 'package:flutter/services.dart';
+
+class FlutterPlugin {
+  static const MethodChannel _channel =
+      const MethodChannel('flutter_plugin');
+
+  static Future<String> get platformVersion async {
+    final String version = await _channel.invokeMethod('getPlatformVersion');
+    return version;
+  }
+
+  static Future<void> open() async {
+    return await _channel.invokeMethod('open');
+  }
+}
diff --git a/example/flutter_plugin/pubspec.yaml b/example/flutter_plugin/pubspec.yaml
new file mode 100644
index 0000000..a866a4d
--- /dev/null
+++ b/example/flutter_plugin/pubspec.yaml
@@ -0,0 +1,52 @@
+name: flutter_plugin
+description: A new Flutter plugin.
+version: 0.0.1
+author:
+homepage:
+
+environment:
+  sdk: ">=2.0.0-dev.68.0 <3.0.0"
+
+dependencies:
+  flutter:
+    sdk: flutter
+
+# For information on the generic Dart part of this file, see the
+# following page: https://www.dartlang.org/tools/pub/pubspec
+
+# The following section is specific to Flutter.
+flutter:
+  plugin:
+    androidPackage: com.pichillilorenzo.flutterplugin
+    pluginClass: FlutterPlugin
+
+  # To add assets to your plugin package, add an assets section, like this:
+  # assets:
+  #  - images/a_dot_burr.jpeg
+  #  - images/a_dot_ham.jpeg
+  #
+  # For details regarding assets in packages, see
+  # https://flutter.io/assets-and-images/#from-packages
+  #
+  # An image asset can refer to one or more resolution-specific "variants", see
+  # https://flutter.io/assets-and-images/#resolution-aware.
+
+  # To add custom fonts to your plugin package, add a fonts section here,
+  # in this "flutter" section. Each entry in this list should have a
+  # "family" key with the font family name, and a "fonts" key with a
+  # list giving the asset and other descriptors for the font. For
+  # example:
+  # fonts:
+  #   - family: Schyler
+  #     fonts:
+  #       - asset: fonts/Schyler-Regular.ttf
+  #       - asset: fonts/Schyler-Italic.ttf
+  #         style: italic
+  #   - family: Trajan Pro
+  #     fonts:
+  #       - asset: fonts/TrajanPro.ttf
+  #       - asset: fonts/TrajanPro_Bold.ttf
+  #         weight: 700
+  #
+  # For details regarding fonts in packages, see
+  # https://flutter.io/custom-fonts/#from-packages
diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj
index 6359b20..0f0a631 100644
--- a/example/ios/Runner.xcodeproj/project.pbxproj
+++ b/example/ios/Runner.xcodeproj/project.pbxproj
@@ -20,6 +20,7 @@
 		97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
 		97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
 		97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
+		ED5EF13121506A3E0065FD45 /* WebView.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = ED5EF108214FF6F80065FD45 /* WebView.storyboard */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXCopyFilesBuildPhase section */
@@ -55,6 +56,7 @@
 		97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
 		97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
 		E8D91E403808A7540F18B75D /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+		ED5EF108214FF6F80065FD45 /* WebView.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = WebView.storyboard; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
@@ -131,6 +133,7 @@
 				1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
 				74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
 				74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
+				ED5EF108214FF6F80065FD45 /* WebView.storyboard */,
 			);
 			path = Runner;
 			sourceTree = "<group>";
@@ -178,6 +181,7 @@
 				TargetAttributes = {
 					97C146ED1CF9000F007C117D = {
 						CreatedOnToolsVersion = 7.3.1;
+						DevelopmentTeam = PFP8UV45Y6;
 						LastSwiftMigration = 0910;
 					};
 				};
@@ -208,6 +212,7 @@
 				97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
 				3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
 				9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */,
+				ED5EF13121506A3E0065FD45 /* WebView.storyboard in Resources */,
 				97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
 				2D5378261FAA1A9400D5DBA9 /* flutter_assets in Resources */,
 				97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
@@ -427,6 +432,7 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				CLANG_ENABLE_MODULES = YES;
 				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+				DEVELOPMENT_TEAM = PFP8UV45Y6;
 				ENABLE_BITCODE = NO;
 				FRAMEWORK_SEARCH_PATHS = (
 					"$(inherited)",
@@ -455,6 +461,7 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				CLANG_ENABLE_MODULES = YES;
 				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+				DEVELOPMENT_TEAM = PFP8UV45Y6;
 				ENABLE_BITCODE = NO;
 				FRAMEWORK_SEARCH_PATHS = (
 					"$(inherited)",
diff --git a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
index 1263ac8..f5a8db1 100644
--- a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -26,7 +26,6 @@
       buildConfiguration = "Debug"
       selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      language = ""
       shouldUseLaunchSchemeArgsEnv = "YES">
       <Testables>
       </Testables>
@@ -46,7 +45,6 @@
       buildConfiguration = "Debug"
       selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      language = ""
       launchStyle = "0"
       useCustomWorkingDirectory = "NO"
       ignoresPersistentStateOnLaunch = "NO"
diff --git a/example/ios/Runner/Assets.xcassets/Contents.json b/example/ios/Runner/Assets.xcassets/Contents.json
new file mode 100644
index 0000000..da4a164
--- /dev/null
+++ b/example/ios/Runner/Assets.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file
diff --git a/example/ios/Runner/Base.lproj/LaunchScreen.storyboard b/example/ios/Runner/Base.lproj/LaunchScreen.storyboard
index f2e259c..e5f4734 100644
--- a/example/ios/Runner/Base.lproj/LaunchScreen.storyboard
+++ b/example/ios/Runner/Base.lproj/LaunchScreen.storyboard
@@ -1,37 +1,31 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16G29" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14113" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" colorMatched="YES" initialViewController="Nsx-Ri-Dgx">
+    <device id="retina4_7" orientation="portrait">
+        <adaptation id="fullscreen"/>
+    </device>
     <dependencies>
-        <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
+        <deployment version="4352" identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <scenes>
         <!--View Controller-->
-        <scene sceneID="EHf-IW-A2E">
+        <scene sceneID="lxq-E3-pHH">
             <objects>
-                <viewController id="01J-lp-oVM" sceneMemberID="viewController">
+                <viewController id="Nsx-Ri-Dgx" sceneMemberID="viewController">
                     <layoutGuides>
-                        <viewControllerLayoutGuide type="top" id="Ydg-fD-yQy"/>
-                        <viewControllerLayoutGuide type="bottom" id="xbc-2k-c8Z"/>
+                        <viewControllerLayoutGuide type="top" id="KVJ-VH-ydV"/>
+                        <viewControllerLayoutGuide type="bottom" id="Jq5-ZG-k8e"/>
                     </layoutGuides>
-                    <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
+                    <view key="view" contentMode="scaleToFill" id="Sps-6x-mNc">
+                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <subviews>
-                            <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4">
-                            </imageView>
-                        </subviews>
-                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                        <constraints>
-                            <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="1a2-6s-vTC"/>
-                            <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="4X2-HB-R7a"/>
-                        </constraints>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     </view>
                 </viewController>
-                <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="rSY-gH-7Pu" userLabel="First Responder" sceneMemberID="firstResponder"/>
             </objects>
-            <point key="canvasLocation" x="53" y="375"/>
+            <point key="canvasLocation" x="136" y="92"/>
         </scene>
     </scenes>
-    <resources>
-        <image name="LaunchImage" width="168" height="185"/>
-    </resources>
 </document>
diff --git a/example/ios/Runner/Base.lproj/Main.storyboard b/example/ios/Runner/Base.lproj/Main.storyboard
index f3c2851..c0688ac 100644
--- a/example/ios/Runner/Base.lproj/Main.storyboard
+++ b/example/ios/Runner/Base.lproj/Main.storyboard
@@ -1,8 +1,12 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14113" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
+    <device id="retina4_7" orientation="portrait">
+        <adaptation id="fullscreen"/>
+    </device>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <scenes>
         <!--Flutter View Controller-->
@@ -10,17 +14,18 @@
             <objects>
                 <viewController id="BYZ-38-t0r" customClass="FlutterViewController" sceneMemberID="viewController">
                     <layoutGuides>
-                        <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
-                        <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
+                        <viewControllerLayoutGuide type="top" id="xId-fH-G5r"/>
+                        <viewControllerLayoutGuide type="bottom" id="HKP-Q1-sxO"/>
                     </layoutGuides>
                     <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
-                        <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
+                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                     </view>
                 </viewController>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
             </objects>
+            <point key="canvasLocation" x="32.799999999999997" y="30.134932533733135"/>
         </scene>
     </scenes>
 </document>
diff --git a/example/ios/Runner/WebView.storyboard b/example/ios/Runner/WebView.storyboard
new file mode 100644
index 0000000..125c787
--- /dev/null
+++ b/example/ios/Runner/WebView.storyboard
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14113" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina5_5" orientation="portrait">
+        <adaptation id="fullscreen"/>
+    </device>
+    <dependencies>
+        <deployment version="4352" identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
+        <capability name="Constraints to layout margins" minToolsVersion="6.0"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <scenes>
+        <!--In App Browser Web View Controller-->
+        <scene sceneID="PeV-E5-ivI">
+            <objects>
+                <viewController storyboardIdentifier="viewController" id="zfm-Ja-gep" customClass="InAppBrowserWebViewController" customModule="flutter_inappbrowser" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="ISu-6l-aO1">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="5cB-8U-Az3">
+                                <rect key="frame" x="206.66666666666666" y="367.66666666666669" width="1" height="1"/>
+                            </imageView>
+                            <wkWebView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="gA9-n8-qaQ">
+                                <rect key="frame" x="0.0" y="67" width="414" height="625"/>
+                                <color key="backgroundColor" red="0.36078431370000003" green="0.38823529410000002" blue="0.4039215686" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                                <wkWebViewConfiguration key="configuration" applicationNameForUserAgent="">
+                                    <audiovisualMediaTypes key="mediaTypesRequiringUserActionForPlayback" none="YES"/>
+                                    <wkPreferences key="preferences"/>
+                                </wkWebViewConfiguration>
+                            </wkWebView>
+                            <toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8Pf-5R-cFf" userLabel="Toolbar Bottom">
+                                <rect key="frame" x="0.0" y="692" width="414" height="44"/>
+                                <items>
+                                    <barButtonItem title="&lt;" id="595-GQ-9lo"/>
+                                    <barButtonItem style="plain" systemItem="flexibleSpace" id="CNi-Ja-5Sm"/>
+                                    <barButtonItem title="&gt;" id="cCF-Ou-NU3"/>
+                                    <barButtonItem style="plain" systemItem="flexibleSpace" id="M8l-n1-EKt"/>
+                                    <barButtonItem systemItem="refresh" id="fig-ca-P2P"/>
+                                    <barButtonItem style="plain" systemItem="flexibleSpace" id="ML1-Dy-jn0"/>
+                                    <barButtonItem systemItem="action" id="skL-Lw-jYB"/>
+                                </items>
+                            </toolbar>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vlz-kT-71x" userLabel="Toolbar Top">
+                                <rect key="frame" x="0.0" y="20" width="414" height="47"/>
+                                <subviews>
+                                    <textField opaque="NO" contentMode="scaleToFill" horizontalCompressionResistancePriority="250" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="sy2-Vx-Cxd">
+                                        <rect key="frame" x="8" y="8" width="351" height="30"/>
+                                        <edgeInsets key="layoutMargins" top="8" left="8" bottom="8" right="8"/>
+                                        <nil key="textColor"/>
+                                        <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                        <textInputTraits key="textInputTraits"/>
+                                    </textField>
+                                    <button opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="zlr-JJ-Uuj">
+                                        <rect key="frame" x="367" y="8" width="39" height="30"/>
+                                        <state key="normal" title="Close"/>
+                                    </button>
+                                </subviews>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                <constraints>
+                                    <constraint firstItem="sy2-Vx-Cxd" firstAttribute="centerY" secondItem="vlz-kT-71x" secondAttribute="centerY" id="29E-I6-cKG"/>
+                                    <constraint firstItem="zlr-JJ-Uuj" firstAttribute="leading" secondItem="sy2-Vx-Cxd" secondAttribute="trailing" constant="8" symbolic="YES" id="5VU-v3-7Ey"/>
+                                    <constraint firstItem="zlr-JJ-Uuj" firstAttribute="trailing" secondItem="vlz-kT-71x" secondAttribute="trailingMargin" id="Cz5-rQ-5zV"/>
+                                    <constraint firstItem="sy2-Vx-Cxd" firstAttribute="top" secondItem="vlz-kT-71x" secondAttribute="topMargin" id="DVY-hQ-ZiW"/>
+                                    <constraint firstItem="zlr-JJ-Uuj" firstAttribute="top" secondItem="sy2-Vx-Cxd" secondAttribute="top" id="c8c-p0-wa2"/>
+                                    <constraint firstItem="sy2-Vx-Cxd" firstAttribute="leading" secondItem="vlz-kT-71x" secondAttribute="leadingMargin" id="fTs-kD-AzF"/>
+                                </constraints>
+                            </view>
+                            <activityIndicatorView hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" style="gray" translatesAutoresizingMaskIntoConstraints="NO" id="HWt-17-FMf">
+                                <rect key="frame" x="197" y="369.66666666666669" width="20" height="20"/>
+                            </activityIndicatorView>
+                        </subviews>
+                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <constraints>
+                            <constraint firstItem="8Pf-5R-cFf" firstAttribute="top" secondItem="gA9-n8-qaQ" secondAttribute="bottom" id="5fJ-ST-ege"/>
+                            <constraint firstItem="5cB-8U-Az3" firstAttribute="centerY" secondItem="ISu-6l-aO1" secondAttribute="centerY" id="7gS-HV-ExU"/>
+                            <constraint firstItem="gA9-n8-qaQ" firstAttribute="leading" secondItem="F31-HP-PHQ" secondAttribute="leading" id="8YB-0N-UzE"/>
+                            <constraint firstItem="gA9-n8-qaQ" firstAttribute="trailing" secondItem="F31-HP-PHQ" secondAttribute="trailing" id="Dhn-ga-7dD"/>
+                            <constraint firstItem="gA9-n8-qaQ" firstAttribute="trailing" secondItem="8Pf-5R-cFf" secondAttribute="trailing" id="OPR-aA-bxG"/>
+                            <constraint firstItem="vlz-kT-71x" firstAttribute="leading" secondItem="gA9-n8-qaQ" secondAttribute="leading" id="OZ2-Kx-4su"/>
+                            <constraint firstItem="8Pf-5R-cFf" firstAttribute="bottom" secondItem="F31-HP-PHQ" secondAttribute="bottom" id="Otv-w8-VOO"/>
+                            <constraint firstItem="gA9-n8-qaQ" firstAttribute="leading" secondItem="8Pf-5R-cFf" secondAttribute="leading" id="RGD-3l-ddR"/>
+                            <constraint firstItem="gA9-n8-qaQ" firstAttribute="top" secondItem="vlz-kT-71x" secondAttribute="bottom" id="Sjd-dV-din"/>
+                            <constraint firstItem="5cB-8U-Az3" firstAttribute="centerX" secondItem="ISu-6l-aO1" secondAttribute="centerX" id="Wh0-qC-IDM"/>
+                            <constraint firstItem="vlz-kT-71x" firstAttribute="trailing" secondItem="gA9-n8-qaQ" secondAttribute="trailing" id="XRo-VA-krE"/>
+                            <constraint firstItem="vlz-kT-71x" firstAttribute="top" secondItem="F31-HP-PHQ" secondAttribute="top" id="bWR-2T-bWy"/>
+                            <constraint firstItem="HWt-17-FMf" firstAttribute="centerX" secondItem="gA9-n8-qaQ" secondAttribute="centerX" id="dV8-Dm-9mc"/>
+                            <constraint firstItem="HWt-17-FMf" firstAttribute="centerY" secondItem="gA9-n8-qaQ" secondAttribute="centerY" id="pCx-Ia-kSL"/>
+                            <constraint firstAttribute="trailing" secondItem="vlz-kT-71x" secondAttribute="trailing" id="ugv-NZ-e6F"/>
+                            <constraint firstItem="vlz-kT-71x" firstAttribute="leading" secondItem="ISu-6l-aO1" secondAttribute="leading" id="yp6-RS-pBY"/>
+                        </constraints>
+                        <viewLayoutGuide key="safeArea" id="F31-HP-PHQ"/>
+                    </view>
+                    <connections>
+                        <outlet property="backButton" destination="595-GQ-9lo" id="dvV-nO-BJ6"/>
+                        <outlet property="closeButton" destination="zlr-JJ-Uuj" id="vcO-DA-ByF"/>
+                        <outlet property="forwardButton" destination="cCF-Ou-NU3" id="IqB-62-XYC"/>
+                        <outlet property="reloadButton" destination="fig-ca-P2P" id="271-Gw-S2k"/>
+                        <outlet property="shareButton" destination="skL-Lw-jYB" id="8hu-WC-OM0"/>
+                        <outlet property="spinner" destination="HWt-17-FMf" id="c2Y-Tb-XfA"/>
+                        <outlet property="toolbarBottom" destination="8Pf-5R-cFf" id="Og7-Xw-2sq"/>
+                        <outlet property="toolbarTop" destination="vlz-kT-71x" id="WgC-80-Z28"/>
+                        <outlet property="urlField" destination="sy2-Vx-Cxd" id="MCW-lJ-Ehl"/>
+                        <outlet property="webView" destination="gA9-n8-qaQ" id="R0x-Ts-S58"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="cYA-mw-BIR" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="433.33333333333337" y="-217.66304347826087"/>
+        </scene>
+    </scenes>
+    <resources>
+        <image name="LaunchImage" width="1" height="1"/>
+    </resources>
+</document>
diff --git a/example/lib/main.dart b/example/lib/main.dart
index 68d82e4..bc5b063 100644
--- a/example/lib/main.dart
+++ b/example/lib/main.dart
@@ -14,16 +14,16 @@ class MyInAppBrowser extends InAppBrowser {
   void onLoadStop(String url) {
     super.onLoadStop(url);
     print("\n\nStopped $url\n\n");
-    this.injectScriptFile("https://code.jquery.com/jquery-3.3.1.min.js");
-    /*this.injectScriptCode("""
+    /*this.injectScriptFile("https://code.jquery.com/jquery-3.3.1.min.js");
+    this.injectScriptCode("""
       \$( "body" ).html( "Next Step..." )
-    """);*/
+    """);
     this.injectStyleCode("""
     body {
       background-color: #3c3c3c !important;
     }
     """);
-    this.injectStyleFile("https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css");
+    this.injectStyleFile("https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css");*/
   }
 
   @override
@@ -65,7 +65,10 @@ class _MyAppState extends State<MyApp> {
         ),
         body: new Center(
           child: new RaisedButton(onPressed: () {
-            inAppBrowser.open("https://flutter.io/");
+            inAppBrowser.open("https://flutter.io/", options: {
+              //"toolbarTop": false,
+              //"toolbarBottom": false
+            });
           },
           child: Text("Open InAppBrowser")
           ),
diff --git a/flutter_inappbrowser.iml b/flutter_inappbrowser.iml
index 98c4874..c5627b4 100644
--- a/flutter_inappbrowser.iml
+++ b/flutter_inappbrowser.iml
@@ -11,6 +11,9 @@
       <excludeFolder url="file://$MODULE_DIR$/example/.dart_tool" />
       <excludeFolder url="file://$MODULE_DIR$/example/.pub" />
       <excludeFolder url="file://$MODULE_DIR$/example/build" />
+      <excludeFolder url="file://$MODULE_DIR$/example/flutter_plugin/.dart_tool" />
+      <excludeFolder url="file://$MODULE_DIR$/example/flutter_plugin/.pub" />
+      <excludeFolder url="file://$MODULE_DIR$/example/flutter_plugin/build" />
       <excludeFolder url="file://$MODULE_DIR$/example/ios/Flutter/flutter_assets/packages" />
     </content>
     <orderEntry type="sourceFolder" forTests="false" />
diff --git a/flutter_inappbrowser_android.iml b/flutter_inappbrowser_android.iml
index ac5d744..a06f850 100644
--- a/flutter_inappbrowser_android.iml
+++ b/flutter_inappbrowser_android.iml
@@ -27,4 +27,4 @@
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="library" name="Flutter for Android" level="project" />
   </component>
-</module>
+</module>
\ No newline at end of file
diff --git a/ios/Classes/InAppBrowserOptions.swift b/ios/Classes/InAppBrowserOptions.swift
new file mode 100644
index 0000000..01ff0bf
--- /dev/null
+++ b/ios/Classes/InAppBrowserOptions.swift
@@ -0,0 +1,42 @@
+//
+//  InAppBrowserOptions.swift
+//  flutter_inappbrowser
+//
+//  Created by Lorenzo on 17/09/18.
+//
+
+import Foundation
+
+@objcMembers
+public class InAppBrowserOptions: NSObject {
+    var closeButtonCaption = ""
+    var closeButtonColor = ""
+    var clearCache = false
+    var clearSessionCache = false
+    var spinner = true
+    var enableViewportScale = false
+    var mediaPlaybackRequiresUserAction = false
+    var allowInlineMediaPlayback = false
+    var keyboardDisplayRequiresUserAction = true
+    var suppressesIncrementalRendering = false
+    var hidden = false
+    var disallowOverScroll = false
+    var toolbarTop = true
+    var toolbarTopColor = ""
+    var toolbarTopTranslucent = true
+    var toolbarBottom = true
+    var toolbarBottomColor = ""
+    var toolbarBottomTranslucent = true
+    var hideUrlBar = false
+    var presentationStyle = 0 //fullscreen
+    var transitionStyle = 0 //crossDissolve
+    
+    public func parse(options: [String: Any]) {
+        for (key, value) in options {
+            if self.value(forKey: key) != nil {
+                self.setValue(value, forKey: key)
+            }
+        }
+    }
+}
+
diff --git a/ios/Classes/InAppBrowserWebViewController.swift b/ios/Classes/InAppBrowserWebViewController.swift
new file mode 100644
index 0000000..1411ffd
--- /dev/null
+++ b/ios/Classes/InAppBrowserWebViewController.swift
@@ -0,0 +1,566 @@
+//
+//  InAppBrowserWebViewController.swift
+//  flutter_inappbrowser
+//
+//  Created by Lorenzo on 17/09/18.
+//
+
+import Flutter
+import UIKit
+import WebKit
+import Foundation
+import AVFoundation
+
+typealias OlderClosureType =  @convention(c) (Any, Selector, UnsafeRawPointer, Bool, Bool, Any?) -> Void
+typealias NewerClosureType =  @convention(c) (Any, Selector, UnsafeRawPointer, Bool, Bool, Bool, Any?) -> Void
+
+extension WKWebView{
+    
+    var keyboardDisplayRequiresUserAction: Bool? {
+        get {
+            return self.keyboardDisplayRequiresUserAction
+        }
+        set {
+            self.setKeyboardRequiresUserInteraction(newValue ?? true)
+        }
+    }
+    
+    func setKeyboardRequiresUserInteraction( _ value: Bool) {
+        
+        guard
+            let WKContentViewClass: AnyClass = NSClassFromString("WKContentView") else {
+                print("Cannot find the WKContentView class")
+                return
+        }
+        
+        let olderSelector: Selector = sel_getUid("_startAssistingNode:userIsInteracting:blurPreviousNode:userObject:")
+        let newerSelector: Selector = sel_getUid("_startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:")
+        
+        if let method = class_getInstanceMethod(WKContentViewClass, olderSelector) {
+            
+            let originalImp: IMP = method_getImplementation(method)
+            let original: OlderClosureType = unsafeBitCast(originalImp, to: OlderClosureType.self)
+            let block : @convention(block) (Any, UnsafeRawPointer, Bool, Bool, Any?) -> Void = { (me, arg0, arg1, arg2, arg3) in
+                original(me, olderSelector, arg0, !value, arg2, arg3)
+            }
+            let imp: IMP = imp_implementationWithBlock(block)
+            method_setImplementation(method, imp)
+        }
+        
+        if let method = class_getInstanceMethod(WKContentViewClass, newerSelector) {
+            
+            let originalImp: IMP = method_getImplementation(method)
+            let original: NewerClosureType = unsafeBitCast(originalImp, to: NewerClosureType.self)
+            let block : @convention(block) (Any, UnsafeRawPointer, Bool, Bool, Bool, Any?) -> Void = { (me, arg0, arg1, arg2, arg3, arg4) in
+                original(me, newerSelector, arg0, !value, arg2, arg3, arg4)
+            }
+            let imp: IMP = imp_implementationWithBlock(block)
+            method_setImplementation(method, imp)
+        }
+        
+    }
+    
+}
+
+class InAppBrowserWebViewController: UIViewController, WKUIDelegate, WKNavigationDelegate, UITextFieldDelegate {
+    @IBOutlet var webView: WKWebView!
+    @IBOutlet var closeButton: UIButton!
+    @IBOutlet var reloadButton: UIBarButtonItem!
+    @IBOutlet var backButton: UIBarButtonItem!
+    @IBOutlet var forwardButton: UIBarButtonItem!
+    @IBOutlet var shareButton: UIBarButtonItem!
+    @IBOutlet var spinner: UIActivityIndicatorView!
+    @IBOutlet var toolbarTop: UIView!
+    @IBOutlet var toolbarBottom: UIToolbar!
+    @IBOutlet var urlField: UITextField!
+    
+    weak var navigationDelegate: SwiftFlutterPlugin?
+    var currentURL: URL?
+    var tmpWindow: UIWindow?
+    var browserOptions: InAppBrowserOptions?
+    
+    required init(coder aDecoder: NSCoder) {
+        super.init(coder: aDecoder)!
+    }
+    
+    override func viewWillAppear(_ animated: Bool) {
+        UIApplication.shared.statusBarStyle = preferredStatusBarStyle
+        super.viewWillAppear(animated)
+        prepareWebView()
+    }
+    
+    override func viewDidLoad() {
+        webView.uiDelegate = self
+        webView.navigationDelegate = self
+        
+        urlField.delegate = self
+        urlField.text = self.currentURL?.absoluteString
+        
+        closeButton.addTarget(self, action: #selector(self.close), for: .touchUpInside)
+        
+        forwardButton.target = self
+        forwardButton.action = #selector(self.goForward)
+        
+        forwardButton.target = self
+        forwardButton.action = #selector(self.goForward)
+        
+        backButton.target = self
+        backButton.action = #selector(self.goBack)
+        
+        reloadButton.target = self
+        reloadButton.action = #selector(self.reload)
+        
+        shareButton.target = self
+        shareButton.action = #selector(self.share)
+        
+        spinner.hidesWhenStopped = true
+        spinner.isHidden = false
+        spinner.stopAnimating()
+        
+        navigate(to: self.currentURL!)
+    }
+    
+    // Prevent crashes on closing windows
+    deinit {
+        webView?.uiDelegate = nil
+    }
+    
+    override func viewWillDisappear (_ animated: Bool) {
+        super.viewWillDisappear(animated)
+    }
+    
+    func prepareWebView() {
+        
+        if (browserOptions?.hideUrlBar)! {
+            self.urlField.isHidden = true
+            self.urlField.isEnabled = false
+        }
+        
+        if (browserOptions?.toolbarTop)! {
+            if browserOptions?.toolbarTopColor != "" {
+                self.toolbarTop.backgroundColor = color(fromHexString: (browserOptions?.toolbarTopColor)!)
+            }
+        }
+        else {
+            self.toolbarTop.removeFromSuperview()
+            self.webView.bounds.size.height += self.toolbarTop.bounds.height
+            
+            if #available(iOS 9.0, *) {
+                let topConstraint = webView.topAnchor.constraint(equalTo: self.view.topAnchor, constant: CGFloat(getStatusBarOffset()))
+                NSLayoutConstraint.activate([topConstraint])
+            }
+        }
+        
+        if (browserOptions?.toolbarBottom)! {
+            if browserOptions?.toolbarBottomColor != "" {
+                self.toolbarBottom.backgroundColor = color(fromHexString: (browserOptions?.toolbarBottomColor)!)
+            }
+            self.toolbarBottom.isTranslucent = (browserOptions?.toolbarBottomTranslucent)!
+        }
+        else {
+            self.toolbarBottom.removeFromSuperview()
+            self.webView.bounds.size.height += self.toolbarBottom.bounds.height
+            
+            if #available(iOS 9.0, *) {
+                let bottomConstraint = webView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor)
+                NSLayoutConstraint.activate([bottomConstraint])
+            }
+        }
+        
+        if browserOptions?.closeButtonCaption != "" {
+            closeButton.setTitle(browserOptions?.closeButtonCaption, for: .normal)
+        }
+        if browserOptions?.closeButtonColor != "" {
+            closeButton.tintColor = color(fromHexString: (browserOptions?.closeButtonColor)!)
+        }
+        
+        self.modalPresentationStyle = UIModalPresentationStyle(rawValue: (browserOptions?.presentationStyle)!)!
+        self.modalTransitionStyle = UIModalTransitionStyle(rawValue: (browserOptions?.transitionStyle)!)!
+        
+        // prevent webView from bouncing
+        if (browserOptions?.disallowOverScroll)! {
+            if self.webView.responds(to: #selector(getter: self.webView.scrollView)) {
+                self.webView.scrollView.bounces = false
+            }
+            else {
+                for subview: UIView in self.webView.subviews {
+                    if subview is UIScrollView {
+                        (subview as! UIScrollView).bounces = false
+                    }
+                }
+            }
+        }
+        
+        let wkUController = WKUserContentController()
+        self.webView.configuration.userContentController = wkUController
+        
+        if (browserOptions?.enableViewportScale)! {
+            let jscript = "var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width'); document.getElementsByTagName('head')[0].appendChild(meta);"
+            let userScript = WKUserScript(source: jscript, injectionTime: .atDocumentEnd, forMainFrameOnly: true)
+            self.webView.configuration.userContentController.addUserScript(userScript)
+        }
+        
+        // Prevents long press on links that cause WKWebView exit
+        let jscriptWebkitTouchCallout = WKUserScript(source: "document.body.style.webkitTouchCallout='none';", injectionTime: .atDocumentEnd, forMainFrameOnly: true)
+        self.webView.configuration.userContentController.addUserScript(jscriptWebkitTouchCallout)
+        
+        if (browserOptions?.mediaPlaybackRequiresUserAction)! {
+            if #available(iOS 10.0, *) {
+                self.webView.configuration.mediaTypesRequiringUserActionForPlayback = .all
+            } else {
+                // Fallback on earlier versions
+            }
+        }
+        
+        self.webView.configuration.allowsInlineMediaPlayback = (browserOptions?.allowInlineMediaPlayback)!
+        
+        self.webView.keyboardDisplayRequiresUserAction = browserOptions?.keyboardDisplayRequiresUserAction
+        self.webView.configuration.suppressesIncrementalRendering = (browserOptions?.suppressesIncrementalRendering)!
+    }
+    
+    // Load user requested url
+    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
+        textField.resignFirstResponder()
+        if textField.text != nil && textField.text != "" {
+            let url = textField.text?.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
+            let request = URLRequest(url: URL(string: url!)!)
+            webView.load(request)
+        }
+        else {
+            updateUrlTextField(url: (currentURL?.absoluteString)!)
+        }
+        //var list : WKBackForwardList = self.webView.backForwardList
+        return false
+    }
+    
+    //    func createViews() {
+    //        // We create the views in code for primarily for ease of upgrades and not requiring an external .xib to be included
+    ////        let screenSize: CGRect = view.bounds
+    ////        let myView = UIView(frame: CGRect(x: 0, y: 0, width: screenSize.width, height: screenSize.height-44-CGFloat((browserOptions?.location)! ? FOOTER_HEIGHT : TOOLBAR_HEIGHT)))
+    ////
+    //
+    ////
+    ////        let webViewFrame = CGRect(x: 0, y: urlField.frame.height, width: screenSize.width, height: screenSize.height-44-CGFloat((browserOptions?.location)! ? FOOTER_HEIGHT : TOOLBAR_HEIGHT))
+    ////
+    ////        let webConfiguration = WKWebViewConfiguration()
+    ////        webView = WKWebView(frame: webViewFrame, configuration: webConfiguration)
+    ////        webView?.autoresizingMask = [.flexibleWidth, .flexibleHeight]
+    //
+    //        let toolbarIsAtBottom: Bool = browserOptions!.toolbarposition == kInAppBrowserToolbarBarPositionBottom
+    //
+    //        var webViewBounds: CGRect = view.bounds
+    //        webViewBounds.origin.y += (toolbarIsAtBottom) ? 0 : CGFloat(TOOLBAR_HEIGHT+getStatusBarOffset())
+    //        webViewBounds.size.height -= (browserOptions?.location)! ? CGFloat(TOOLBAR_HEIGHT+getStatusBarOffset()) : 0
+    //        let webConfiguration = WKWebViewConfiguration()
+    //        webView = WKWebView(frame: webViewBounds, configuration: webConfiguration)
+    //        webView?.autoresizingMask = [.flexibleWidth, .flexibleHeight]
+    //        view.addSubview(webView!)
+    //        //view.sendSubview(toBack: webView!)
+    //
+    //        webView?.uiDelegate = self
+    //        webView?.navigationDelegate = self
+    //        webView?.backgroundColor = UIColor.white
+    //        webView?.clearsContextBeforeDrawing = true
+    //        webView?.clipsToBounds = true
+    //        webView?.contentMode = .scaleToFill
+    //        webView?.isMultipleTouchEnabled = true
+    //        webView?.isOpaque = true
+    //        //webView?.scalesPageToFit = false
+    //        webView?.isUserInteractionEnabled = true
+    //
+    //        spinner = UIActivityIndicatorView(activityIndicatorStyle: .gray)
+    //        spinner.alpha = 1.000
+    //        spinner.autoresizesSubviews = true
+    //        spinner.autoresizingMask = [.flexibleLeftMargin, .flexibleTopMargin, .flexibleBottomMargin, .flexibleRightMargin]
+    //        spinner.clearsContextBeforeDrawing = false
+    //        spinner.clipsToBounds = false
+    //        spinner.contentMode = .scaleToFill
+    //        spinner.frame = CGRect(x: (webView?.frame.midX)!, y: (webView?.frame.midY)!, width: 20.0, height: 20.0)
+    //        spinner.isHidden = false
+    //        spinner.hidesWhenStopped = true
+    //        spinner.isMultipleTouchEnabled = false
+    //        spinner.isOpaque = false
+    //        spinner.isUserInteractionEnabled = false
+    //        spinner.stopAnimating()
+    //
+    //        closeButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(self.close))
+    //        closeButton.isEnabled = true
+    //        let flexibleSpaceButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
+    //        let fixedSpaceButton = UIBarButtonItem(barButtonSystemItem: .fixedSpace, target: nil, action: nil)
+    //        fixedSpaceButton.width = 20
+    //
+    //
+    //        let toolbarY: Float = toolbarIsAtBottom ? Float(view.bounds.size.height) - TOOLBAR_HEIGHT : 0.0
+    //        let toolbarFrame = CGRect(x: 0.0, y: CGFloat(toolbarY), width: view.bounds.size.width, height: CGFloat(TOOLBAR_HEIGHT))
+    //
+    //        toolbar = UIToolbar(frame: toolbarFrame)
+    //        toolbar.alpha = 1.000
+    //        toolbar.autoresizesSubviews = true
+    //        toolbar.autoresizingMask = toolbarIsAtBottom ? ([.flexibleWidth, .flexibleTopMargin]) : .flexibleWidth
+    //        toolbar.barStyle = .blackOpaque
+    //        toolbar.clearsContextBeforeDrawing = false
+    //        toolbar.clipsToBounds = false
+    //        toolbar.contentMode = .scaleToFill
+    //        toolbar.isHidden = false
+    //        toolbar.isMultipleTouchEnabled = false
+    //        toolbar.isOpaque = false
+    //        toolbar.isUserInteractionEnabled = true
+    //        if browserOptions?.toolbarcolor != nil {
+    //            // Set toolbar color if user sets it in options
+    //            toolbar.barTintColor = color(fromHexString: (browserOptions?.toolbarcolor)!)
+    //        }
+    //        if !(browserOptions?.toolbartranslucent)! {
+    //            // Set toolbar translucent to no if user sets it in options
+    //            toolbar.isTranslucent = false
+    //        }
+    //        let labelInset: CGFloat = 5.0
+    //        let locationBarY: Float = toolbarIsAtBottom ? Float(view.bounds.size.height) - FOOTER_HEIGHT : Float(view.bounds.size.height) - LOCATIONBAR_HEIGHT
+    //
+    //
+    //        let frontArrowString = NSLocalizedString("â–º", comment: "")
+    //        // create arrow from Unicode char
+    //        forwardButton = UIBarButtonItem(title: frontArrowString, style: .plain, target: self, action: #selector(self.goForward))
+    //
+    //        //forwardButton = UIBarButtonItem(barButtonSystemItem: .fastForward, target: self, action: #selector(self.goForward))
+    //        forwardButton.isEnabled = true
+    //        forwardButton.imageInsets = UIEdgeInsets.zero as? UIEdgeInsets ?? UIEdgeInsets()
+    //        if browserOptions?.navigationbuttoncolor != nil {
+    //            // Set button color if user sets it in options
+    //            forwardButton.tintColor = color(fromHexString: (browserOptions?.navigationbuttoncolor)!)
+    //        }
+    //
+    //        let backArrowString = NSLocalizedString("â—„", comment: "")
+    //        // create arrow from Unicode char
+    //        backButton = UIBarButtonItem(title: backArrowString, style: .plain, target: self, action: #selector(self.goBack))
+    //        backButton.isEnabled = true
+    //        backButton.imageInsets = UIEdgeInsets.zero as? UIEdgeInsets ?? UIEdgeInsets()
+    //        if browserOptions?.navigationbuttoncolor != nil {
+    //            // Set button color if user sets it in options
+    //            backButton.tintColor = color(fromHexString: (browserOptions?.navigationbuttoncolor)!)
+    //        }
+    //
+    //        reloadButton = UIBarButtonItem(barButtonSystemItem: .refresh, target: self, action: #selector(self.reload))
+    //        reloadButton.isEnabled = true
+    //        reloadButton.imageInsets = UIEdgeInsetsMake(0, 0, 0, 15)
+    //
+    //        urlField = UITextField()
+    //        urlField.bounds.size.width = toolbar.bounds.width - 150
+    //        urlField.bounds.size.height = CGFloat(TOOLBAR_HEIGHT-15)
+    //        urlField.backgroundColor = color(fromHexString: "#ECECED")
+    //        urlField.center.y = toolbar.center.y
+    //        urlField.autoresizesSubviews = true
+    //        urlField.autoresizingMask = [.flexibleWidth, .flexibleHeight]
+    //        urlField.text = currentURL?.absoluteString
+    //        urlField.textAlignment = NSTextAlignment.center
+    //        urlField.font = UIFont.systemFont(ofSize: 15)
+    //        urlField.borderStyle = UITextBorderStyle.roundedRect
+    //        urlField.autocorrectionType = UITextAutocorrectionType.no
+    //        urlField.keyboardType = UIKeyboardType.default
+    //        urlField.returnKeyType = UIReturnKeyType.done
+    //        urlField.clearButtonMode = UITextFieldViewMode.whileEditing;
+    //        urlField.contentVerticalAlignment = UIControlContentVerticalAlignment.center
+    //        urlField.delegate = self
+    //        urlFieldBarButton = UIBarButtonItem.init(customView: urlField)
+    //
+    //        // Filter out Navigation Buttons if user requests so
+    //        if (browserOptions?.hidenavigationbuttons)! {
+    //            toolbar.items = [closeButton, flexibleSpaceButton, urlFieldBarButton]
+    //        }
+    //        else {
+    //            //toolbar.items = [urlFieldBarButton, closeButton, flexibleSpaceButton, backButton, fixedSpaceButton, forwardButton]
+    //            toolbar.items = [urlFieldBarButton, flexibleSpaceButton, reloadButton, closeButton]
+    //        }
+    //
+    //        view.backgroundColor = UIColor.gray
+    //        view.addSubview(toolbar)
+    //        view.addSubview(spinner)
+    //    }
+    
+    func setWebViewFrame(_ frame: CGRect) {
+        print("Setting the WebView's frame to \(NSStringFromCGRect(frame))")
+        webView.frame = frame
+    }
+    
+    //    func showToolBar(_ show: Bool, toolbarPosition: String) {
+    //        var toolbarFrame: CGRect = toolbar.frame
+    //        // prevent double show/hide
+    //        if show == !toolbar.isHidden {
+    //            return
+    //        }
+    //        if show {
+    //            toolbar.isHidden = false
+    //            var webViewBounds: CGRect = view.bounds
+    //
+    //            webViewBounds.size.height -= CGFloat(TOOLBAR_HEIGHT)
+    //            toolbar.frame = toolbarFrame
+    //
+    //            if (toolbarPosition == kInAppBrowserToolbarBarPositionTop) {
+    //                toolbarFrame.origin.y = 0
+    //                webViewBounds.origin.y += toolbarFrame.size.height
+    //                setWebViewFrame(webViewBounds)
+    //            }
+    //            else {
+    //                toolbarFrame.origin.y = webViewBounds.size.height + CGFloat(LOCATIONBAR_HEIGHT)
+    //            }
+    //            setWebViewFrame(webViewBounds)
+    //        }
+    //        else {
+    //            toolbar.isHidden = true
+    //            setWebViewFrame(view.bounds)
+    //        }
+    //    }
+    
+    //    override func viewDidUnload() {
+    //        webView?.loadHTMLString(nil, baseURL: nil)
+    //        CDVUserAgentUtil.releaseLock(userAgentLockToken)
+    //        super.viewDidUnload()
+    //    }
+    
+    @objc func reload () {
+        webView.reload()
+    }
+    
+    @objc func share () {
+        let vc = UIActivityViewController(activityItems: [currentURL ?? ""], applicationActivities: [])
+        present(vc, animated: true, completion: nil)
+    }
+    
+    @objc func close() {
+        currentURL = nil
+        
+        if (navigationDelegate != nil) {
+            navigationDelegate?.browserExit()
+        }
+        //        if (navigationDelegate != nil) && navigationDelegate?.responds(to: #selector(self.browserExit)) {
+        //            navigationDelegate?.browserExit()
+        //        }
+        weak var weakSelf = self
+        
+        // Run later to avoid the "took a long time" log message.
+        DispatchQueue.main.async(execute: {() -> Void in
+            if (weakSelf?.responds(to: #selector(getter: self.presentingViewController)))! {
+                weakSelf?.presentingViewController?.dismiss(animated: true, completion: {() -> Void in
+                    self.tmpWindow?.windowLevel = 0.0
+                    UIApplication.shared.delegate?.window??.makeKeyAndVisible()
+                })
+            }
+            else {
+                weakSelf?.parent?.dismiss(animated: true, completion: {() -> Void in
+                    self.tmpWindow?.windowLevel = 0.0
+                    UIApplication.shared.delegate?.window??.makeKeyAndVisible()
+                })
+            }
+        })
+    }
+    
+    func navigate(to url: URL) {
+        let request = URLRequest(url: url)
+        currentURL = url
+        updateUrlTextField(url: (currentURL?.absoluteString)!)
+        webView.load(request)
+    }
+    
+    @objc func goBack(_ sender: Any) {
+        webView.goBack()
+        updateUrlTextField(url: (webView?.url?.absoluteString)!)
+    }
+    
+    @objc func goForward(_ sender: Any) {
+        webView.goForward()
+        updateUrlTextField(url: (webView?.url?.absoluteString)!)
+    }
+    
+    func updateUrlTextField(url: String) {
+        urlField.text = url
+    }
+    
+    //
+    // On iOS 7 the status bar is part of the view's dimensions, therefore it's height has to be taken into account.
+    // The height of it could be hardcoded as 20 pixels, but that would assume that the upcoming releases of iOS won't
+    // change that value.
+    //
+    
+    func getStatusBarOffset() -> Float {
+        let statusBarFrame: CGRect = UIApplication.shared.statusBarFrame
+        let statusBarOffset: Float = Float(min(statusBarFrame.size.width, statusBarFrame.size.height))
+        return statusBarOffset
+    }
+    
+    //    func rePositionViews() {
+    //        if (browserOptions?.toolbarposition == kInAppBrowserToolbarBarPositionTop) {
+    //            webView?.frame = CGRect(x: (webView?.frame.origin.x)!, y: CGFloat(TOOLBAR_HEIGHT+getStatusBarOffset()), width: (webView?.frame.size.width)!, height: (webView?.frame.size.height)!)
+    //            toolbar.frame = CGRect(x: toolbar.frame.origin.x, y: CGFloat(getStatusBarOffset()), width: toolbar.frame.size.width, height: toolbar.frame.size.height)
+    //        }
+    //    }
+    
+    // Helper function to convert hex color string to UIColor
+    // Assumes input like "#00FF00" (#RRGGBB).
+    // Taken from https://stackoverflow.com/questions/1560081/how-can-i-create-a-uicolor-from-a-hex-string
+    
+    func color(fromHexString: String, alpha:CGFloat? = 1.0) -> UIColor {
+        
+        // Convert hex string to an integer
+        let hexint = Int(self.intFromHexString(hexStr: fromHexString))
+        let red = CGFloat((hexint & 0xff0000) >> 16) / 255.0
+        let green = CGFloat((hexint & 0xff00) >> 8) / 255.0
+        let blue = CGFloat((hexint & 0xff) >> 0) / 255.0
+        let alpha = alpha!
+        
+        // Create color object, specifying alpha as well
+        let color = UIColor(red: red, green: green, blue: blue, alpha: alpha)
+        return color
+    }
+    
+    func intFromHexString(hexStr: String) -> UInt32 {
+        var hexInt: UInt32 = 0
+        // Create scanner
+        let scanner: Scanner = Scanner(string: hexStr)
+        // Tell scanner to skip the # character
+        scanner.charactersToBeSkipped = CharacterSet(charactersIn: "#")
+        // Scan hex value
+        scanner.scanHexInt32(&hexInt)
+        return hexInt
+    }
+    
+    func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
+        // loading url, start spinner, update back/forward
+        backButton.isEnabled = webView.canGoBack
+        forwardButton.isEnabled = webView.canGoForward
+        
+        if (browserOptions?.spinner)! {
+            spinner.startAnimating()
+        }
+        
+        return (navigationDelegate?.webViewDidStartLoad(webView))!
+    }
+    
+    //    func webView(_ theWebView: WKWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
+    //        let isTopLevelNavigation: Bool? = request.url == request.mainDocumentURL
+    //        if isTopLevelNavigation ?? false {
+    //            currentURL = request.url
+    //        }
+    //
+    //        return (navigationDelegate?.webView(theWebView, shouldStartLoadWith: request, navigationType: navigationType))!
+    //    }
+    
+    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
+        //func webViewDidFinishLoad(_ theWebView: WKWebView) {
+        // update url, stop spinner, update back/forward
+        currentURL = webView.url
+        updateUrlTextField(url: (currentURL?.absoluteString)!)
+        backButton.isEnabled = webView.canGoBack
+        forwardButton.isEnabled = webView.canGoForward
+        spinner.stopAnimating()
+        navigationDelegate?.webViewDidFinishLoad(webView)
+    }
+    
+    func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
+        //func webView(_ theWebView: WKWebView, didFailLoadWithError error: Error) {
+        // log fail message, stop spinner, update back/forward
+        print("webView:didFailLoadWithError - \(Int(error._code)): \(error.localizedDescription)")
+        backButton.isEnabled = webView.canGoBack
+        forwardButton.isEnabled = webView.canGoForward
+        spinner.stopAnimating()
+        navigationDelegate?.webView(webView, didFailLoadWithError: error)
+    }
+}
diff --git a/ios/Classes/SwiftFlutterPlugin.swift b/ios/Classes/SwiftFlutterPlugin.swift
index 5ea1006..6e26cb4 100644
--- a/ios/Classes/SwiftFlutterPlugin.swift
+++ b/ios/Classes/SwiftFlutterPlugin.swift
@@ -21,101 +21,11 @@ import WebKit
 import Foundation
 import AVFoundation
 
-let kInAppBrowserTargetSelf = "_self"
-let kInAppBrowserTargetSystem = "_system"
-let kInAppBrowserTargetBlank = "_blank"
-let kInAppBrowserToolbarBarPositionBottom = "bottom"
-let kInAppBrowserToolbarBarPositionTop = "top"
-let TOOLBAR_HEIGHT: Float = 44.0
-let STATUSBAR_HEIGHT: Float = 20.0
-let LOCATIONBAR_HEIGHT: Float = 21.0
-let FOOTER_HEIGHT: Float = (TOOLBAR_HEIGHT + LOCATIONBAR_HEIGHT)
-
-@objcMembers
-class CDVInAppBrowserOptions: NSObject {
-    var location = false
-    var toolbar = false
-    var closebuttoncaption = ""
-    var closebuttoncolor = ""
-    var toolbarposition = ""
-    var toolbarcolor = ""
-    var toolbartranslucent = false
-    var hidenavigationbuttons = false
-    var navigationbuttoncolor = ""
-    var clearcache = false
-    var clearsessioncache = false
-    var hidespinner = false
-    var presentationstyle = ""
-    var transitionstyle = ""
-    var enableviewportscale = false
-    var mediaplaybackrequiresuseraction = false
-    var allowinlinemediaplayback = false
-    var keyboarddisplayrequiresuseraction = false
-    var suppressesincrementalrendering = false
-    var hidden = false
-    var disallowoverscroll = false
-    
-    override init() {
-        super.init()
-        
-        // default values
-        location = true
-        toolbar = true
-        closebuttoncaption = "Done"
-        closebuttoncolor = "#FFFFFF"
-        toolbarposition = kInAppBrowserToolbarBarPositionBottom
-        clearcache = false
-        clearsessioncache = false
-        hidespinner = false
-        enableviewportscale = false
-        mediaplaybackrequiresuseraction = false
-        allowinlinemediaplayback = false
-        keyboarddisplayrequiresuseraction = true
-        suppressesincrementalrendering = false
-        hidden = false
-        disallowoverscroll = false
-        hidenavigationbuttons = false
-        toolbarcolor = ""
-        toolbartranslucent = true
-        
-    }
-    
-    class func parseOptions(_ options: String) -> CDVInAppBrowserOptions {
-        let obj = CDVInAppBrowserOptions()
-        // NOTE: this parsing does not handle quotes within values
-        let pairs = options.components(separatedBy: ",")
-        // parse keys and values, set the properties
-        for pair: String in pairs {
-            let keyvalue = pair.components(separatedBy: "=")
-            if keyvalue.count == 2 {
-                let key: String = keyvalue[0].lowercased()
-                let value: String = keyvalue[1]
-                let value_lc: String = value.lowercased()
-                let isBoolean: Bool = (value_lc == "yes") || (value_lc == "no")
-                let numberFormatter = NumberFormatter()
-                numberFormatter.allowsFloats = true
-                let isNumber: Bool = numberFormatter.number(from: value_lc) != nil
-                // set the property according to the key name
-                if obj.responds(to: NSSelectorFromString(key)) {
-                    if isNumber {
-                        obj.setValue(numberFormatter.number(from: value_lc), forKey: key)
-                    }
-                    else if isBoolean {
-                        obj.setValue(((value_lc == "yes") ? 1 : 0), forKey: key)
-                    }
-                    else {
-                        obj.setValue(value, forKey: key)
-                    }
-                }
-            }
-        }
-        return obj
-    }
-}
-
+let WEBVIEW_STORYBOARD = "WebView"
+let WEBVIEW_STORYBOARD_CONTROLLER_ID = "viewController"
 
 public class SwiftFlutterPlugin: NSObject, FlutterPlugin {
-    var inAppBrowserViewController: CDVInAppBrowserViewController?
+    var webViewController: InAppBrowserWebViewController?
     
     var tmpWindow: UIWindow?
     var channel: FlutterMethodChannel
@@ -134,57 +44,49 @@ public class SwiftFlutterPlugin: NSObject, FlutterPlugin {
     public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
         let arguments = call.arguments as? NSDictionary
         switch call.method {
-            case "open":
-                self.open(arguments: arguments!, result: result)
-                break
-            case "close":
-                self.close()
-                result(true)
-                break
-            case "show":
-                self.show()
-                result(true)
-                break
-            case "hide":
-                self.hide()
-                result(true)
-                break
-            case "injectScriptCode":
-                self.injectScriptCode(arguments: arguments!)
-                result(true)
-                break
-            case "injectScriptFile":
-                self.injectScriptFile(arguments: arguments!)
-                result(true)
-                break
-            case "injectStyleCode":
-                self.injectStyleCode(arguments: arguments!)
-                result(true)
-                break
-            case "injectStyleFile":
-                self.injectStyleFile(arguments: arguments!)
-                result(true)
-                break
-            default:
-                break
+        case "open":
+            self.open(arguments: arguments!, result: result)
+            break
+        case "close":
+            self.close()
+            result(true)
+            break
+        case "show":
+            self.show()
+            result(true)
+            break
+        case "hide":
+            self.hide()
+            result(true)
+            break
+        case "injectScriptCode":
+            self.injectScriptCode(arguments: arguments!)
+            result(true)
+            break
+        case "injectScriptFile":
+            self.injectScriptFile(arguments: arguments!)
+            result(true)
+            break
+        case "injectStyleCode":
+            self.injectStyleCode(arguments: arguments!)
+            result(true)
+            break
+        case "injectStyleFile":
+            self.injectStyleFile(arguments: arguments!)
+            result(true)
+            break
+        default:
+            break
         }
     }
     
-    func setting(forKey key: String) -> Any {
-        return ""//commandDelegate.settings[key.lowercased()]!
-    }
-    
-    func onReset() {
-        close()
-    }
-    
     func close() {
-        if inAppBrowserViewController == nil {
+        if webViewController == nil {
             print("IAB.close() called but it was already closed.")
             return
         }
         // Things are cleaned up in browserExit.
-        inAppBrowserViewController?.close()
+        webViewController?.close()
     }
     
     func isSystemUrl(_ url: URL) -> Bool {
@@ -197,25 +99,24 @@ public class SwiftFlutterPlugin: NSObject, FlutterPlugin {
     public func open(arguments: NSDictionary, result: @escaping FlutterResult) {
         let url: String? = (arguments["url"] as? String)!
         var target: String? = (arguments["target"] as? String)!
-        target = target != nil ? target : kInAppBrowserTargetSelf
-        let options = (arguments["options"] as? String)!
-
+        target = target != nil ? target : "_self"
+        let options = (arguments["options"] as? [String: Any])!
+        
         if url != nil {
-            let baseUrl: URL? = nil
-            let absoluteUrl = URL(string: url!, relativeTo: baseUrl)?.absoluteURL
+            let absoluteUrl = URL(string: url!)?.absoluteURL
             
             if isSystemUrl(absoluteUrl!) {
-                target = kInAppBrowserTargetSystem
+                target = "_system"
             }
             
-            if (target == kInAppBrowserTargetSelf) {
-                open(inCordovaWebView: absoluteUrl!, withOptions: options)
+            if (target == "_self" || target == "_target") {
+                openIn(inAppBrowser: absoluteUrl!, withOptions: options)
             }
-            else if (target == kInAppBrowserTargetSystem) {
+            else if (target == "_system") {
                 open(inSystem: absoluteUrl!)
             }
             else {
-                // _blank or anything else
+                // anything else
                 openIn(inAppBrowser: absoluteUrl!, withOptions: options)
             }
         }
@@ -225,10 +126,12 @@ public class SwiftFlutterPlugin: NSObject, FlutterPlugin {
         result(true)
     }
     
-    func openIn(inAppBrowser url: URL, withOptions options: String) {
-        let browserOptions = CDVInAppBrowserOptions.parseOptions(options)
+    func openIn(inAppBrowser url: URL, withOptions options: [String: Any]) {
+        
+        let browserOptions = InAppBrowserOptions()
+        browserOptions.parse(options: options)
 
-        if browserOptions.clearcache {
+        if browserOptions.clearCache {
             let _: HTTPCookie?
             let storage = HTTPCookieStorage.shared
             for cookie in storage.cookies! {
@@ -238,8 +141,7 @@ public class SwiftFlutterPlugin: NSObject, FlutterPlugin {
             }
         }
         
-        if browserOptions.clearsessioncache {
-            let _: HTTPCookie?
+        if browserOptions.clearSessionCache {
             let storage = HTTPCookieStorage.shared
             for cookie in storage.cookies! {
                 if !(cookie.domain.isEqual(".^filecookies^") && cookie.isSessionOnly) {
@@ -248,88 +150,29 @@ public class SwiftFlutterPlugin: NSObject, FlutterPlugin {
             }
         }
         
-        if inAppBrowserViewController == nil {
-            var userAgent: String = UIWebView().stringByEvaluatingJavaScript(from: "navigator.userAgent")!
+        if webViewController == nil {
 
-            let overrideUserAgent: String = ""
-            let appendUserAgent: String = ""
-            if overrideUserAgent != "" {
-                userAgent = overrideUserAgent
-            }
-            if appendUserAgent != "" {
-                userAgent = userAgent + (appendUserAgent)
-            }
             if !(self.tmpWindow != nil) {
                 let frame: CGRect = UIScreen.main.bounds
                 self.tmpWindow = UIWindow(frame: frame)
             }
-            inAppBrowserViewController = CDVInAppBrowserViewController(userAgent: userAgent, prevUserAgent: userAgent, browserOptions: browserOptions, tmpWindow: tmpWindow)
-            inAppBrowserViewController?.navigationDelegate = self
-        }
-        
-        inAppBrowserViewController?.showLocationBar(browserOptions.location)
-        inAppBrowserViewController?.showToolBar(browserOptions.toolbar, toolbarPosition: browserOptions.toolbarposition)
-        if browserOptions.closebuttoncaption != nil || browserOptions.closebuttoncolor != nil {
-            inAppBrowserViewController?.setCloseButtonTitle(browserOptions.closebuttoncaption, colorString: browserOptions.closebuttoncolor)
-        }
-        
-        // Set Presentation Style
-        var presentationStyle: UIModalPresentationStyle = .fullScreen
-        // default
-        if browserOptions.presentationstyle != nil {
-            if (browserOptions.presentationstyle.lowercased() == "pagesheet") {
-                presentationStyle = .pageSheet
-            }
-            else if (browserOptions.presentationstyle.lowercased() == "formsheet") {
-                presentationStyle = .formSheet
-            }
-        }
-        inAppBrowserViewController?.modalPresentationStyle = presentationStyle
-        
-        // Set Transition Style
-        var transitionStyle: UIModalTransitionStyle = .coverVertical
-        // default
-        if browserOptions.transitionstyle != nil {
-            if (browserOptions.transitionstyle.lowercased() == "fliphorizontal") {
-                transitionStyle = .flipHorizontal
-            }
-            else if (browserOptions.transitionstyle.lowercased() == "crossdissolve") {
-                transitionStyle = .crossDissolve
-            }
-        }
-        inAppBrowserViewController?.modalTransitionStyle = transitionStyle
-        
-        // prevent webView from bouncing
-        if browserOptions.disallowoverscroll {
-            if inAppBrowserViewController?.webView?.responds(to: #selector(getter: inAppBrowserViewController?.webView?.scrollView)) ?? false {
-                (inAppBrowserViewController?.webView?.scrollView)?.bounces = false
-            }
-            else {
-                for subview: UIView in (inAppBrowserViewController?.webView?.subviews)! {
-                    if subview is UIScrollView {
-                        (subview as? UIScrollView)?.bounces = false
-                    }
-                }
-            }
+            
+            let storyboard = UIStoryboard(name: WEBVIEW_STORYBOARD, bundle: nil)
+            let vc = storyboard.instantiateViewController(withIdentifier: WEBVIEW_STORYBOARD_CONTROLLER_ID)
+            webViewController = vc as? InAppBrowserWebViewController
+            webViewController?.browserOptions = browserOptions
+            webViewController?.tmpWindow = tmpWindow
+            webViewController?.currentURL = url
+            webViewController?.navigationDelegate = self
         }
         
-        // UIWebView options
-        inAppBrowserViewController?.webView?.scalesPageToFit = browserOptions.enableviewportscale
-        inAppBrowserViewController?.webView?.mediaPlaybackRequiresUserAction = browserOptions.mediaplaybackrequiresuseraction
-        inAppBrowserViewController?.webView?.allowsInlineMediaPlayback = browserOptions.allowinlinemediaplayback
-        //if IsAtLeastiOSVersion("6.0") {
-        inAppBrowserViewController?.webView?.keyboardDisplayRequiresUserAction = browserOptions.keyboarddisplayrequiresuseraction
-        inAppBrowserViewController?.webView?.suppressesIncrementalRendering = browserOptions.suppressesincrementalrendering
-        //}
-        
-        inAppBrowserViewController?.navigate(to: url)
         if !browserOptions.hidden {
             show()
         }
     }
     
     public func show() {
-        if inAppBrowserViewController == nil {
+        if webViewController == nil {
             print("Tried to show IAB after it was closed.")
             return
         }
@@ -338,17 +181,11 @@ public class SwiftFlutterPlugin: NSObject, FlutterPlugin {
             return
         }
         
-        previousStatusBarStyle = UIApplication.shared.statusBarStyle.rawValue
-        let nav = CDVInAppBrowserNavigationController(rootViewController: inAppBrowserViewController!)
-        nav.orientationDelegate = inAppBrowserViewController
-        nav.isNavigationBarHidden = true
-        nav.modalPresentationStyle = (inAppBrowserViewController?.modalPresentationStyle)!
-        
         weak var weakSelf: SwiftFlutterPlugin? = self
         
         // Run later to avoid the "took a long time" log message.
         DispatchQueue.main.async(execute: {() -> Void in
-            if weakSelf?.inAppBrowserViewController != nil {
+            if weakSelf?.webViewController != nil {
                 if !(self.tmpWindow != nil) {
                     let frame: CGRect = UIScreen.main.bounds
                     self.tmpWindow = UIWindow(frame: frame)
@@ -358,13 +195,14 @@ public class SwiftFlutterPlugin: NSObject, FlutterPlugin {
                 self.tmpWindow?.rootViewController = tmpController
                 self.tmpWindow?.windowLevel = UIWindowLevel(baseWindowLevel! + 1)
                 self.tmpWindow?.makeKeyAndVisible()
-                tmpController.present(nav, animated: true) { () -> Void in }
+                
+                tmpController.present(self.webViewController!, animated: true, completion: nil)
             }
         })
     }
     
     public func hide() {
-        if inAppBrowserViewController == nil {
+        if webViewController == nil {
             print("Tried to hide IAB after it was closed.")
             return
         }
@@ -372,12 +210,13 @@ public class SwiftFlutterPlugin: NSObject, FlutterPlugin {
             print("Tried to hide IAB while already hidden")
             return
         }
+        
         previousStatusBarStyle = UIApplication.shared.statusBarStyle.rawValue
         // Run later to avoid the "took a long time" log message.
         DispatchQueue.main.async(execute: {() -> Void in
-            if self.inAppBrowserViewController != nil {
+            if self.webViewController != nil {
                 self.previousStatusBarStyle = -1
-                self.inAppBrowserViewController?.presentingViewController?.dismiss(animated: true, completion: {() -> Void in
+                self.webViewController?.presentingViewController?.dismiss(animated: true, completion: {() -> Void in
                     self.tmpWindow?.windowLevel = 0.0
                     UIApplication.shared.delegate?.window??.makeKeyAndVisible()
                 })
@@ -385,11 +224,6 @@ public class SwiftFlutterPlugin: NSObject, FlutterPlugin {
         })
     }
     
-    func open(inCordovaWebView url: URL, withOptions options: String) {
-        _ = URLRequest(url: url)
-        openIn(inAppBrowser: url, withOptions: options)
-    }
-    
     func open(inSystem url: URL) {
         if UIApplication.shared.openURL(url) == false {
             NotificationCenter.default.post(Notification(name: Notification.Name(rawValue: "CDVPluginHandleOpenURLNotification"), object: url))
@@ -411,11 +245,11 @@ public class SwiftFlutterPlugin: NSObject, FlutterPlugin {
             if sourceArrayString != nil {
                 let sourceString: String? = (sourceArrayString! as NSString).substring(with: NSRange(location: 1, length: (sourceArrayString?.characters.count ?? 0) - 2))
                 let jsToInject = String(format: jsWrapper, sourceString!)
-                inAppBrowserViewController?.webView?.stringByEvaluatingJavaScript(from: jsToInject)
+                webViewController?.webView?.evaluateJavaScript(jsToInject)
             }
         }
         else {
-            inAppBrowserViewController?.webView?.stringByEvaluatingJavaScript(from: source)
+            webViewController?.webView?.evaluateJavaScript(source)
         }
     }
     
@@ -439,18 +273,18 @@ public class SwiftFlutterPlugin: NSObject, FlutterPlugin {
         injectDeferredObject(arguments["urlFile"] as! String, withWrapper: jsWrapper)
     }
     
-    func webViewDidStartLoad(_ webView: UIWebView) {
-        let url: String = inAppBrowserViewController!.currentURL!.absoluteString
+    func webViewDidStartLoad(_ webView: WKWebView) {
+        let url: String = webViewController!.currentURL!.absoluteString
         channel.invokeMethod("loadstart", arguments: ["type": "loadstart", "url": url])
     }
     
-    func webViewDidFinishLoad(_ webView: UIWebView) {
-        let url: String = inAppBrowserViewController!.currentURL!.absoluteString
+    func webViewDidFinishLoad(_ webView: WKWebView) {
+        let url: String = webViewController!.currentURL!.absoluteString
         channel.invokeMethod("loadstop", arguments: ["type": "loadstop", "url": url])
     }
     
-    func webView(_ webView: UIWebView, didFailLoadWithError error: Error) {
-        let url: String = inAppBrowserViewController!.currentURL!.absoluteString
+    func webView(_ webView: WKWebView, didFailLoadWithError error: Error) {
+        let url: String = webViewController!.currentURL!.absoluteString
         let arguments = ["type": "loaderror", "url": url, "code": error._code, "message": error.localizedDescription] as [String : Any]
         channel.invokeMethod("loaderror", arguments: arguments)
     }
@@ -458,577 +292,19 @@ public class SwiftFlutterPlugin: NSObject, FlutterPlugin {
     func browserExit() {
         
         channel.invokeMethod("exit", arguments: ["type": "exit"])
-
+        
         // Set navigationDelegate to nil to ensure no callbacks are received from it.
-        inAppBrowserViewController?.navigationDelegate = nil
+        webViewController?.navigationDelegate = nil
         // Don't recycle the ViewController since it may be consuming a lot of memory.
         // Also - this is required for the PDF/User-Agent bug work-around.
-        inAppBrowserViewController = nil
+        webViewController = nil
         
-        //if (IsAtLeastiOSVersion(@"7.0")) {
-            if previousStatusBarStyle != -1 {
-                UIApplication.shared.statusBarStyle = UIStatusBarStyle(rawValue: previousStatusBarStyle)!
-            }
-        //}
+        if previousStatusBarStyle != -1 {
+            UIApplication.shared.statusBarStyle = UIStatusBarStyle(rawValue: previousStatusBarStyle)!
+        }
         
         previousStatusBarStyle = -1
         // this value was reset before reapplying it. caused statusbar to stay black on ios7
     }
-
-}
-
-class CDVInAppBrowserViewController: UIViewController, UIWebViewDelegate {
-    @IBOutlet var webView: UIWebView!
-    @IBOutlet var closeButton: UIBarButtonItem!
-    @IBOutlet var addressLabel: UILabel!
-    @IBOutlet var backButton: UIBarButtonItem!
-    @IBOutlet var forwardButton: UIBarButtonItem!
-    @IBOutlet var spinner: UIActivityIndicatorView!
-    @IBOutlet var toolbar: UIToolbar!
-    weak var orientationDelegate: CDVInAppBrowserViewController?
-    weak var navigationDelegate: SwiftFlutterPlugin?
-    var currentURL: URL?
-    var tmpWindow: UIWindow?
-    
-    private var userAgent = ""
-    private var prevUserAgent = ""
-    private var userAgentLockToken: Int = 0
-    private var browserOptions: CDVInAppBrowserOptions?
-    
-    init(userAgent: String, prevUserAgent: String, browserOptions: CDVInAppBrowserOptions, tmpWindow: UIWindow?) {
-
-        super.init(nibName: nil, bundle: nil)
-        
-        self.userAgent = userAgent
-        self.prevUserAgent = prevUserAgent
-        self.browserOptions = browserOptions
-        self.tmpWindow = tmpWindow
-        createViews()
-        
-    }
-    
-    required init?(coder aDecoder: NSCoder) {
-        fatalError("init(coder:) has not been implemented")
-    }
-    
-    // Prevent crashes on closing windows
-    deinit {
-        webView?.delegate = nil
-    }
-    
-    func createViews() {
-        // We create the views in code for primarily for ease of upgrades and not requiring an external .xib to be included
-        var webViewBounds: CGRect = view.bounds
-        let toolbarIsAtBottom: Bool = !(browserOptions!.toolbarposition == kInAppBrowserToolbarBarPositionTop)
-        webViewBounds.size.height -= CGFloat((browserOptions?.location)! ? FOOTER_HEIGHT : TOOLBAR_HEIGHT)
-        webView = UIWebView(frame: webViewBounds)// as WKWebView
-        webView?.autoresizingMask = [.flexibleWidth, .flexibleHeight]
-        
-        view.addSubview(webView!)
-        view.sendSubview(toBack: webView!)
-        webView?.delegate = self
-        webView?.backgroundColor = UIColor.white
-        webView?.clearsContextBeforeDrawing = true
-        webView?.clipsToBounds = true
-        webView?.contentMode = .scaleToFill
-        webView?.isMultipleTouchEnabled = true
-        webView?.isOpaque = true
-        webView?.scalesPageToFit = false
-        webView?.isUserInteractionEnabled = true
-        
-        spinner = UIActivityIndicatorView(activityIndicatorStyle: .gray)
-        spinner.alpha = 1.000
-        spinner.autoresizesSubviews = true
-        spinner.autoresizingMask = [.flexibleLeftMargin, .flexibleTopMargin, .flexibleBottomMargin, .flexibleRightMargin]
-        spinner.clearsContextBeforeDrawing = false
-        spinner.clipsToBounds = false
-        spinner.contentMode = .scaleToFill
-        spinner.frame = CGRect(x: (webView?.frame.midX)!, y: (webView?.frame.midY)!, width: 20.0, height: 20.0)
-        spinner.isHidden = false
-        spinner.hidesWhenStopped = true
-        spinner.isMultipleTouchEnabled = false
-        spinner.isOpaque = false
-        spinner.isUserInteractionEnabled = false
-        spinner.stopAnimating()
-        
-        closeButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(self.close))
-        closeButton.isEnabled = true
-        let flexibleSpaceButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
-        let fixedSpaceButton = UIBarButtonItem(barButtonSystemItem: .fixedSpace, target: nil, action: nil)
-        fixedSpaceButton.width = 20
-        let toolbarY: Float = toolbarIsAtBottom ? Float(view.bounds.size.height) - TOOLBAR_HEIGHT : 0.0
-        let toolbarFrame = CGRect(x: 0.0, y: CGFloat(toolbarY), width: view.bounds.size.width, height: CGFloat(TOOLBAR_HEIGHT))
-        
-        toolbar = UIToolbar(frame: toolbarFrame)
-        toolbar.alpha = 1.000
-        toolbar.autoresizesSubviews = true
-        toolbar.autoresizingMask = toolbarIsAtBottom ? ([.flexibleWidth, .flexibleTopMargin]) : .flexibleWidth
-        toolbar.barStyle = .blackOpaque
-        toolbar.clearsContextBeforeDrawing = false
-        toolbar.clipsToBounds = false
-        toolbar.contentMode = .scaleToFill
-        toolbar.isHidden = false
-        toolbar.isMultipleTouchEnabled = false
-        toolbar.isOpaque = false
-        toolbar.isUserInteractionEnabled = true
-        if browserOptions?.toolbarcolor != nil {
-            // Set toolbar color if user sets it in options
-            toolbar.barTintColor = color(fromHexString: (browserOptions?.toolbarcolor)!)
-        }
-        if !(browserOptions?.toolbartranslucent)! {
-            // Set toolbar translucent to no if user sets it in options
-            toolbar.isTranslucent = false
-        }
-        let labelInset: CGFloat = 5.0
-        let locationBarY: Float = toolbarIsAtBottom ? Float(view.bounds.size.height) - FOOTER_HEIGHT : Float(view.bounds.size.height) - LOCATIONBAR_HEIGHT
-        
-        addressLabel = UILabel(frame: CGRect(x: labelInset, y: CGFloat(locationBarY), width: view.bounds.size.width - labelInset, height: CGFloat(LOCATIONBAR_HEIGHT)))
-        addressLabel.adjustsFontSizeToFitWidth = false
-        addressLabel.alpha = 1.000
-        addressLabel.autoresizesSubviews = true
-        addressLabel.autoresizingMask = [.flexibleWidth, .flexibleRightMargin, .flexibleTopMargin]
-        addressLabel.backgroundColor = UIColor.clear// as? CGColor
-        addressLabel.baselineAdjustment = .alignCenters
-        addressLabel.clearsContextBeforeDrawing = true
-        addressLabel.clipsToBounds = true
-        addressLabel.contentMode = .scaleToFill
-        addressLabel.isEnabled = true
-        addressLabel.isHidden = false
-        addressLabel.lineBreakMode = .byTruncatingTail
-        
-        if addressLabel.responds(to: NSSelectorFromString("setMinimumScaleFactor:")) {
-            addressLabel.setValue((10.0 / UIFont.labelFontSize), forKey: "minimumScaleFactor")
-        }
-        else if addressLabel.responds(to: NSSelectorFromString("setMinimumFontSize:")) {
-            addressLabel.setValue(10.0, forKey: "minimumFontSize")
-        }
-        
-        addressLabel.isMultipleTouchEnabled = false
-        addressLabel.numberOfLines = 1
-        addressLabel.isOpaque = false
-        addressLabel.shadowOffset = CGSize(width: 0.0, height: -1.0)
-        addressLabel.text = NSLocalizedString("Loading...", comment: "")
-        addressLabel.textAlignment = .left
-        addressLabel.textColor = UIColor(white: 1.000, alpha: 1.000)
-        addressLabel.isUserInteractionEnabled = false
-        
-        let frontArrowString = NSLocalizedString("â–º", comment: "")
-        // create arrow from Unicode char
-        forwardButton = UIBarButtonItem(title: frontArrowString, style: .plain, target: self, action: #selector(self.goForward))
-        forwardButton.isEnabled = true
-        forwardButton.imageInsets = UIEdgeInsets.zero as? UIEdgeInsets ?? UIEdgeInsets()
-        if browserOptions?.navigationbuttoncolor != nil {
-            // Set button color if user sets it in options
-            forwardButton.tintColor = color(fromHexString: (browserOptions?.navigationbuttoncolor)!)
-        }
-        
-        let backArrowString = NSLocalizedString("â—„", comment: "")
-        // create arrow from Unicode char
-        backButton = UIBarButtonItem(title: backArrowString, style: .plain, target: self, action: #selector(self.goBack))
-        backButton.isEnabled = true
-        backButton.imageInsets = UIEdgeInsets.zero as? UIEdgeInsets ?? UIEdgeInsets()
-        if browserOptions?.navigationbuttoncolor != nil {
-            // Set button color if user sets it in options
-            backButton.tintColor = color(fromHexString: (browserOptions?.navigationbuttoncolor)!)
-        }
-        
-        // Filter out Navigation Buttons if user requests so
-        if (browserOptions?.hidenavigationbuttons)! {
-            toolbar.items = [closeButton, flexibleSpaceButton]
-        }
-        else {
-            toolbar.items = [closeButton, flexibleSpaceButton, backButton, fixedSpaceButton, forwardButton]
-        }
-        view.backgroundColor = UIColor.gray// as? CGColor
-        view.addSubview(toolbar)
-        view.addSubview(addressLabel)
-        view.addSubview(spinner)
-    }
-    
-    func setWebViewFrame(_ frame: CGRect) {
-        print("Setting the WebView's frame to \(NSStringFromCGRect(frame))")
-        webView?.frame = frame
-    }
-    
-    func setCloseButtonTitle(_ title: String, colorString: String) {
-        // the advantage of using UIBarButtonSystemItemDone is the system will localize it for you automatically
-        // but, if you want to set this yourself, knock yourself out (we can't set the title for a system Done button, so we have to create a new one)
-        closeButton = nil
-        // Initialize with title if title is set, otherwise the title will be 'Done' localized
-        closeButton = title != nil ? UIBarButtonItem(title: title, style: .bordered, target: self, action: #selector(self.close)) : UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(self.close))
-        closeButton.isEnabled = true
-        // If color on closebutton is requested then initialize with that that color, otherwise use initialize with default
-        closeButton.tintColor = colorString != nil ? color(fromHexString: colorString) : UIColor(red: 60.0 / 255.0, green: 136.0 / 255.0, blue: 230.0 / 255.0, alpha: 1)
-        
-        var items = toolbar.items
-        items![0] = closeButton
-        toolbar.items = items //as? [AVMetadataItem] ?? [AVMetadataItem]()
-    }
-    
-    func showLocationBar(_ show: Bool) {
-        var locationbarFrame: CGRect = addressLabel.frame
-        let toolbarVisible: Bool = !toolbar.isHidden
-        // prevent double show/hide
-        if show == !addressLabel.isHidden {
-            return
-        }
-        
-        if show {
-            addressLabel.isHidden = false
-            if toolbarVisible {
-                // toolBar at the bottom, leave as is
-                // put locationBar on top of the toolBar
-                var webViewBounds: CGRect = view.bounds
-                webViewBounds.size.height -= CGFloat(FOOTER_HEIGHT)
-                setWebViewFrame(webViewBounds)
-                locationbarFrame.origin.y = webViewBounds.size.height
-                addressLabel.frame = locationbarFrame
-            }
-            else {
-                // no toolBar, so put locationBar at the bottom
-                var webViewBounds: CGRect = view.bounds
-                webViewBounds.size.height -= CGFloat(LOCATIONBAR_HEIGHT)
-                setWebViewFrame(webViewBounds)
-                locationbarFrame.origin.y = webViewBounds.size.height
-                addressLabel.frame = locationbarFrame
-            }
-        }
-        else {
-            addressLabel.isHidden = true
-            if toolbarVisible {
-                // locationBar is on top of toolBar, hide locationBar
-                // webView take up whole height less toolBar height
-                var webViewBounds: CGRect = view.bounds
-                webViewBounds.size.height -= CGFloat(TOOLBAR_HEIGHT)
-                setWebViewFrame(webViewBounds)
-            }
-            else {
-                // no toolBar, expand webView to screen dimensions
-                setWebViewFrame(view.bounds)
-            }
-        }
-    }
-    
-    func showToolBar(_ show: Bool, toolbarPosition: String) {
-        var toolbarFrame: CGRect = toolbar.frame
-        var locationbarFrame: CGRect = addressLabel.frame
-        let locationbarVisible: Bool = !addressLabel.isHidden
-        // prevent double show/hide
-        if show == !toolbar.isHidden {
-            return
-        }
-        if show {
-            toolbar.isHidden = false
-            var webViewBounds: CGRect = view.bounds
-            
-            if locationbarVisible {
-                // locationBar at the bottom, move locationBar up
-                // put toolBar at the bottom
-                webViewBounds.size.height -= CGFloat(FOOTER_HEIGHT)
-                locationbarFrame.origin.y = webViewBounds.size.height
-                addressLabel.frame = locationbarFrame
-                toolbar.frame = toolbarFrame
-            }
-            else {
-                // no locationBar, so put toolBar at the bottom
-                var webViewBounds: CGRect = view.bounds
-                webViewBounds.size.height -= CGFloat(TOOLBAR_HEIGHT)
-                toolbar.frame = toolbarFrame
-            }
-            
-            if (toolbarPosition == kInAppBrowserToolbarBarPositionTop) {
-                toolbarFrame.origin.y = 0
-                webViewBounds.origin.y += toolbarFrame.size.height
-                setWebViewFrame(webViewBounds)
-            }
-            else {
-                toolbarFrame.origin.y = webViewBounds.size.height + CGFloat(LOCATIONBAR_HEIGHT)
-            }
-            setWebViewFrame(webViewBounds)
-        }
-        else {
-            toolbar.isHidden = true
-            if locationbarVisible {
-                // locationBar is on top of toolBar, hide toolBar
-                // put locationBar at the bottom
-                // webView take up whole height less locationBar height
-                var webViewBounds: CGRect = view.bounds
-                webViewBounds.size.height -= CGFloat(LOCATIONBAR_HEIGHT)
-                setWebViewFrame(webViewBounds)
-                // move locationBar down
-                locationbarFrame.origin.y = webViewBounds.size.height
-                addressLabel.frame = locationbarFrame
-            }
-            else {
-                // no locationBar, expand webView to screen dimensions
-                setWebViewFrame(view.bounds)
-            }
-        }
-    }
-    
-    override func viewDidLoad() {
-        super.viewDidLoad()
-    }
-    
-//    override func viewDidUnload() {
-//        webView?.loadHTMLString(nil, baseURL: nil)
-//        CDVUserAgentUtil.releaseLock(userAgentLockToken)
-//        super.viewDidUnload()
-//    }
-    
-//    func preferredStatusBarStyle() -> UIStatusBarStyle {
-//        return .default
-//    }
-//
-//    func prefersStatusBarHidden() -> Bool {
-//        return false
-//    }
-    
-    @objc func close() {
-        currentURL = nil
-        if (navigationDelegate != nil) {
-            navigationDelegate?.browserExit()
-        }
-//        if (navigationDelegate != nil) && navigationDelegate?.responds(to: #selector(self.browserExit)) {
-//            navigationDelegate?.browserExit()
-//        }
-        weak var weakSelf = self// as? UIViewController
-        // Run later to avoid the "took a long time" log message.
-        
-        DispatchQueue.main.async(execute: {() -> Void in
-            if (weakSelf?.responds(to: #selector(getter: self.presentingViewController)))! {
-                weakSelf?.presentingViewController?.dismiss(animated: true, completion: {() -> Void in
-                    self.tmpWindow?.windowLevel = 0.0
-                    UIApplication.shared.delegate?.window??.makeKeyAndVisible()
-                })
-            }
-            else {
-                weakSelf?.parent?.dismiss(animated: true, completion: {() -> Void in
-                    self.tmpWindow?.windowLevel = 0.0
-                    UIApplication.shared.delegate?.window??.makeKeyAndVisible()
-                })
-            }
-        })
-    }
-    
-    func navigate(to url: URL) {
-        let request = URLRequest(url: url)
-        currentURL = url
-        webView?.loadRequest(request)
-//        if userAgentLockToken != 0 {
-//            webView?.load(request, mimeType: <#String#>, textEncodingName: <#String#>, baseURL: <#URL#>)
-//        }
-//        else {
-//            weak var weakSelf: CDVInAppBrowserViewController? = self
-//            CDVUserAgentUtil.acquireLock({(_ lockToken: Int) -> Void in
-//                userAgentLockToken = lockToken
-//                CDVUserAgentUtil.setUserAgent(userAgent, lockToken: lockToken)
-//                weakSelf?.webView?.load(request)
-//            })
-//        }
-    }
-    
-    @objc func goBack(_ sender: Any) {
-        webView?.goBack()
-    }
-    
-    @objc func goForward(_ sender: Any) {
-        webView?.goForward()
-    }
-    
-    override func viewWillAppear(_ animated: Bool) {
-        //if IsAtLeastiOSVersion("7.0") {
-            UIApplication.shared.statusBarStyle = preferredStatusBarStyle
-        //}
-        rePositionViews()
-        super.viewWillAppear(animated)
-    }
-    
-    //
-    // On iOS 7 the status bar is part of the view's dimensions, therefore it's height has to be taken into account.
-    // The height of it could be hardcoded as 20 pixels, but that would assume that the upcoming releases of iOS won't
-    // change that value.
-    //
-    
-    func getStatusBarOffset() -> Float {
-        let statusBarFrame: CGRect = UIApplication.shared.statusBarFrame
-        let statusBarOffset: Float = Float(min(statusBarFrame.size.width, statusBarFrame.size.height))//IsAtLeastiOSVersion("7.0") ? min(statusBarFrame.size.width, statusBarFrame.size.height) : 0.0
-        return statusBarOffset
-    }
-    
-    func rePositionViews() {
-        if (browserOptions?.toolbarposition == kInAppBrowserToolbarBarPositionTop) {
-            webView?.frame = CGRect(x: (webView?.frame.origin.x)!, y: CGFloat(TOOLBAR_HEIGHT), width: (webView?.frame.size.width)!, height: (webView?.frame.size.height)!)
-            toolbar.frame = CGRect(x: toolbar.frame.origin.x, y: CGFloat(getStatusBarOffset()), width: toolbar.frame.size.width, height: toolbar.frame.size.height)
-        }
-    }
-    
-    // Helper function to convert hex color string to UIColor
-    // Assumes input like "#00FF00" (#RRGGBB).
-    // Taken from https://stackoverflow.com/questions/1560081/how-can-i-create-a-uicolor-from-a-hex-string
-    
-    func color(fromHexString: String, alpha:CGFloat? = 1.0) -> UIColor {
-        
-        // Convert hex string to an integer
-        let hexint = Int(self.intFromHexString(hexStr: fromHexString))
-        let red = CGFloat((hexint & 0xff0000) >> 16) / 255.0
-        let green = CGFloat((hexint & 0xff00) >> 8) / 255.0
-        let blue = CGFloat((hexint & 0xff) >> 0) / 255.0
-        let alpha = alpha!
-        
-        // Create color object, specifying alpha as well
-        let color = UIColor(red: red, green: green, blue: blue, alpha: alpha)
-        return color
-    }
-    
-    func intFromHexString(hexStr: String) -> UInt32 {
-        var hexInt: UInt32 = 0
-        // Create scanner
-        let scanner: Scanner = Scanner(string: hexStr)
-        // Tell scanner to skip the # character
-        scanner.charactersToBeSkipped = CharacterSet(charactersIn: "#")
-        // Scan hex value
-        scanner.scanHexInt32(&hexInt)
-        return hexInt
-    }
-    
-    // MARK: UIWebViewDelegate
-    
-    func webViewDidStartLoad(_ theWebView: UIWebView) {
-        // loading url, start spinner, update back/forward
-        addressLabel.text = NSLocalizedString("Loading...", comment: "")
-        backButton.isEnabled = theWebView.canGoBack
-        forwardButton.isEnabled = theWebView.canGoForward
-        print((browserOptions?.hidespinner)! ? "Yes" : "No")
-        if !(browserOptions?.hidespinner)! {
-            spinner.startAnimating()
-        }
-        return (navigationDelegate?.webViewDidStartLoad(theWebView))!
-    }
-    
-//    func webView(_ theWebView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
-//        let isTopLevelNavigation: Bool? = request.url == request.mainDocumentURL
-//        if isTopLevelNavigation ?? false {
-//            currentURL = request.url
-//        }
-//
-//        return (navigationDelegate?.webView(theWebView, shouldStartLoadWith: request, navigationType: navigationType))!
-//    }
-    
-    func webViewDidFinishLoad(_ theWebView: UIWebView) {
-        // update url, stop spinner, update back/forward
-        currentURL = theWebView.request?.url
-        addressLabel.text = currentURL?.absoluteString
-        backButton.isEnabled = theWebView.canGoBack
-        forwardButton.isEnabled = theWebView.canGoForward
-        spinner.stopAnimating()
-        
-        // Work around a bug where the first time a PDF is opened, all UIWebViews
-        // reload their User-Agent from NSUserDefaults.
-        // This work-around makes the following assumptions:
-        // 1. The app has only a single Cordova Webview. If not, then the app should
-        //    take it upon themselves to load a PDF in the background as a part of
-        //    their start-up flow.
-        // 2. That the PDF does not require any additional network requests. We change
-        //    the user-agent here back to that of the CDVViewController, so requests
-        //    from it must pass through its white-list. This *does* break PDFs that
-        //    contain links to other remote PDF/websites.
-        // More info at https://issues.apache.org/jira/browse/CB-2225
-        let isPDF: Bool = "true" == theWebView.stringByEvaluatingJavaScript(from: "document.body==null")
-        if isPDF {
-            //CDVUserAgentUtil.setUserAgent(prevUserAgent, lockToken: userAgentLockToken)
-        }
-        navigationDelegate?.webViewDidFinishLoad(theWebView)
-    }
-    
-    func webView(_ theWebView: UIWebView, didFailLoadWithError error: Error) {
-        // log fail message, stop spinner, update back/forward
-        print("webView:didFailLoadWithError - \(Int(error._code)): \(error.localizedDescription)")
-        backButton.isEnabled = theWebView.canGoBack
-        forwardButton.isEnabled = theWebView.canGoForward
-        spinner.stopAnimating()
-        addressLabel.text = NSLocalizedString("Load Error", comment: "")
-        navigationDelegate?.webView(theWebView, didFailLoadWithError: error)
-    }
-    
-    // MARK: CDVScreenOrientationDelegate
-//    func shouldAutorotate() -> Bool {
-//        if (orientationDelegate != nil) && (orientationDelegate?.responds(to: #selector(getter: self.shouldAutorotate)))! {
-//            return orientationDelegate!.shouldAutorotate
-//        }
-//        return true
-//    }
-//    
-//    func supportedInterfaceOrientations() -> Int {
-//        if (orientationDelegate != nil) && (orientationDelegate?.responds(to: #selector(getter: self.supportedInterfaceOrientations)))! {
-//            return Int(orientationDelegate!.supportedInterfaceOrientations.rawValue)
-//        }
-//        //return Int(1 << .portrait)
-//        return 1
-//    }
-    
-//    override func shouldAutorotate(to interfaceOrientation: UIInterfaceOrientation) -> Bool {
-//        if (orientationDelegate != nil) && (orientationDelegate?.responds(to: #selector(self.shouldAutorotateToInterfaceOrientation)))! {
-//            return orientationDelegate!.shouldAutorotate(to: interfaceOrientation)
-//        }
-//        return true
-//    }
-
-}
-
-class CDVInAppBrowserNavigationController: UINavigationController {
-    weak var orientationDelegate: AnyObject?
-    
-    override func dismiss(animated flag: Bool, completion: (() -> Void)? = nil) {
-        if presentedViewController != nil {
-            super.dismiss(animated: flag, completion: completion)
-        }
-    }
-    
-    override func viewDidLoad() {
-        var statusBarFrame: CGRect = invertFrameIfNeeded(UIApplication.shared.statusBarFrame)
-        statusBarFrame.size.height = CGFloat(STATUSBAR_HEIGHT)
-        // simplified from: http://stackoverflow.com/a/25669695/219684
-        let bgToolbar = UIToolbar(frame: statusBarFrame)
-        bgToolbar.barStyle = .default
-        bgToolbar.autoresizingMask = .flexibleWidth
-        view.addSubview(bgToolbar)
-        super.viewDidLoad()
-    }
-    
-    func invertFrameIfNeeded(_ rect: CGRect) -> CGRect {
-        // We need to invert since on iOS 7 frames are always in Portrait context
-//        if !IsAtLeastiOSVersion("8.0") {
-//            if UIInterfaceOrientationIsLandscape(UIApplication.shared.statusBarOrientation) {
-//                let temp: CGFloat = rect.size.width
-//                rect.size.width = rect.size.height
-//                rect.size.height = temp
-//            }
-//            rect.origin = CGPoint.zero
-//        }
-        return rect
-    }
-    
-    // MARK: CDVScreenOrientationDelegate
-    override var shouldAutorotate: Bool {
-        if (orientationDelegate != nil) && (orientationDelegate?.responds(to: #selector(getter: self.shouldAutorotate)))! {
-            return orientationDelegate!.shouldAutorotate
-        }
-        return true
-    }
-    
-    override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
-        if (orientationDelegate != nil) && (orientationDelegate?.responds(to: #selector(getter: self.supportedInterfaceOrientations)))! {
-            return orientationDelegate!.supportedInterfaceOrientations
-        }
-        //return Int(1 << .portrait)
-        return UIInterfaceOrientationMask(rawValue: 1)
-    }
     
-//    override func shouldAutorotate(to interfaceOrientation: UIInterfaceOrientation) -> Bool {
-//        if (orientationDelegate != nil) && (orientationDelegate?.responds(to: #selector(self.shouldAutorotateToInterfaceOrientation)))! {
-//            return orientationDelegate!.shouldAutorotate(to: interfaceOrientation)
-//        }
-//        return true
-//    }
 }
diff --git a/lib/flutter_inappbrowser.dart b/lib/flutter_inappbrowser.dart
index 40f52fb..c8836a4 100644
--- a/lib/flutter_inappbrowser.dart
+++ b/lib/flutter_inappbrowser.dart
@@ -121,7 +121,7 @@ class InAppBrowser {
   ///   - __transitionstyle__: Set to `fliphorizontal`, `crossdissolve` or `coververtical` to set the [transition style](http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIViewController_Class/Reference/Reference.html#//apple_ref/occ/instp/UIViewController/modalTransitionStyle) (defaults to `coververtical`).
   ///   - __toolbarposition__: Set to `top` or `bottom` (default is `bottom`). Causes the toolbar to be at the top or bottom of the window.
   ///   - __hidespinner__: Set to `yes` or `no` to change the visibility of the loading indicator (defaults to `no`).
-  Future<void> open(String url, {String target = "_self", String options = "location=yes"}) async {
+  Future<void> open(String url, {String target = "_self", Map<String, dynamic> options = const {}}) async {
     Map<String, dynamic> args = <String, dynamic>{};
     args.putIfAbsent('url', () => url);
     args.putIfAbsent('target', () => target);
-- 
2.26.2