Commit f032b7f6 authored by pichillilorenzo's avatar pichillilorenzo

v0.2.1, fixed InAppBrowser.injectScriptCode() method when there is not a...

v0.2.1, fixed InAppBrowser.injectScriptCode() method when there is not a return value, added InAppBrowser.onConsoleMessage() method to manage console messages #5
parent db65f7a0
<component name="libraryTable"> <component name="libraryTable">
<library name="Flutter Plugins" type="FlutterPluginsLibraryType"> <library name="Flutter Plugins">
<CLASSES> <CLASSES>
<root url="file://$PROJECT_DIR$" /> <root url="file://$PROJECT_DIR$" />
</CLASSES> </CLASSES>
......
...@@ -8,16 +8,28 @@ ...@@ -8,16 +8,28 @@
<component name="AndroidLogFilters"> <component name="AndroidLogFilters">
<option name="TOOL_WINDOW_CONFIGURED_FILTER" value="Show only selected application" /> <option name="TOOL_WINDOW_CONFIGURED_FILTER" value="Show only selected application" />
</component> </component>
<component name="CMakeSettings">
<configurations>
<configuration PROFILE_NAME="Debug" CONFIG_NAME="Debug" />
</configurations>
</component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="9b41f7a2-a71e-4923-91fb-249d7815b3e7" name="Default" comment=""> <list default="true" id="9b41f7a2-a71e-4923-91fb-249d7815b3e7" name="Default" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" /> <change beforePath="$PROJECT_DIR$/.idea/libraries/Flutter_Plugins.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Flutter_Plugins.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/CHANGELOG.md" afterPath="$PROJECT_DIR$/CHANGELOG.md" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/README.md" afterPath="$PROJECT_DIR$/README.md" /> <change beforePath="$PROJECT_DIR$/CHANGELOG.md" beforeDir="false" afterPath="$PROJECT_DIR$/CHANGELOG.md" afterDir="false" />
<change beforePath="$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowserFlutterPlugin.java" afterPath="$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowserFlutterPlugin.java" /> <change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
<change beforePath="$PROJECT_DIR$/example/lib/main.dart" afterPath="$PROJECT_DIR$/example/lib/main.dart" /> <change beforePath="$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowserFlutterPlugin.java" beforeDir="false" afterPath="$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowserFlutterPlugin.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ios/Classes/SafariBrowserOptions.swift" afterPath="$PROJECT_DIR$/ios/Classes/SafariBrowserOptions.swift" /> <change beforePath="$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowserWebChromeClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowserWebChromeClient.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ios/Classes/SafariViewController.swift" afterPath="$PROJECT_DIR$/ios/Classes/SafariViewController.swift" /> <change beforePath="$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowserWebViewClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowserWebViewClient.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/lib/flutter_inappbrowser.dart" afterPath="$PROJECT_DIR$/lib/flutter_inappbrowser.dart" /> <change beforePath="$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/WebViewActivity.java" beforeDir="false" afterPath="$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/WebViewActivity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/example/android/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/example/android/build.gradle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/example/android/gradle/wrapper/gradle-wrapper.properties" beforeDir="false" afterPath="$PROJECT_DIR$/example/android/gradle/wrapper/gradle-wrapper.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/example/lib/main.dart" beforeDir="false" afterPath="$PROJECT_DIR$/example/lib/main.dart" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ios/Classes/InAppBrowserWebViewController.swift" beforeDir="false" afterPath="$PROJECT_DIR$/ios/Classes/InAppBrowserWebViewController.swift" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ios/Classes/SwiftFlutterPlugin.swift" beforeDir="false" afterPath="$PROJECT_DIR$/ios/Classes/SwiftFlutterPlugin.swift" afterDir="false" />
<change beforePath="$PROJECT_DIR$/lib/flutter_inappbrowser.dart" beforeDir="false" afterPath="$PROJECT_DIR$/lib/flutter_inappbrowser.dart" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pubspec.yaml" beforeDir="false" afterPath="$PROJECT_DIR$/pubspec.yaml" afterDir="false" />
</list> </list>
<ignored path="$PROJECT_DIR$/.dart_tool/" /> <ignored path="$PROJECT_DIR$/.dart_tool/" />
<ignored path="$PROJECT_DIR$/.idea/" /> <ignored path="$PROJECT_DIR$/.idea/" />
...@@ -33,92 +45,39 @@ ...@@ -33,92 +45,39 @@
<option name="LAST_RESOLUTION" value="IGNORE" /> <option name="LAST_RESOLUTION" value="IGNORE" />
</component> </component>
<component name="FileEditorManager"> <component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <leaf>
<file leaf-file-name="flutter_inappbrowser.dart" pinned="false" current-in-tab="false"> <file leaf-file-name="flutter_inappbrowser.dart" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/lib/flutter_inappbrowser.dart"> <entry file="file://$PROJECT_DIR$/lib/flutter_inappbrowser.dart">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="135"> <state relative-caret-position="-624">
<caret line="337" column="40" lean-forward="false" selection-start-line="337" selection-start-column="40" selection-end-line="337" selection-end-column="40" /> <caret line="268" column="33" selection-start-line="268" selection-start-column="17" selection-end-line="268" selection-end-column="33" />
<folding>
<element signature="e#814#834#0" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="README.md" pinned="false" current-in-tab="true"> <file leaf-file-name="README.md" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/README.md"> <entry file="file://$PROJECT_DIR$/README.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> <provider selected="true" editor-type-id="text-editor">
<state split_layout="SPLIT"> <state relative-caret-position="247">
<first_editor relative-caret-position="133"> <caret line="19" column="15" selection-start-line="19" selection-start-column="3" selection-end-line="19" selection-end-column="15" />
<caret line="460" column="0" lean-forward="true" selection-start-line="460" selection-start-column="0" selection-end-line="460" selection-end-column="0" />
<folding>
<marker date="1538738179486" expanded="true" signature="1261:1358" ph="..." />
<marker date="1538738179486" expanded="true" signature="1402:2447" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="1448:1488" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="1540:2114" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="1826:1879" ph="&quot;&quot;&quot;...&quot;&quot;&quot;" />
<marker date="1538738179486" expanded="true" signature="1934:2006" ph="&quot;&quot;&quot;...&quot;&quot;&quot;" />
<marker date="1538738179486" expanded="true" signature="2185:2246" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="2276:2319" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="2379:2444" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="2574:2639" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="2680:3269" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="2714:2742" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="2793:3267" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="2821:3262" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="2847:3255" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="2875:2958" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="2904:2947" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="2984:3246" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="3019:3235" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="3098:3165" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="10852:10860" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="10979:10987" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="11147:11155" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="11251:11259" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="11543:11549" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="14258:14355" ph="..." />
<marker date="1538738179486" expanded="true" signature="14399:14795" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="14453:14493" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="14545:14585" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="14656:14717" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="14747:14790" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="14914:15224" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="15017:15064" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="15096:15143" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="15175:15222" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="15295:15317" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="15393:15458" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="15499:16401" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="15533:15561" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="15612:16399" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="15640:16394" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="15666:16387" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="15694:15777" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="15723:15766" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="15803:16378" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="15838:16367" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="15924:16138" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="16171:16290" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="19145:19153" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="19251:19259" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="19357:19365" ph="{...}" />
</folding>
</first_editor>
<second_editor />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="main.dart" pinned="false" current-in-tab="false"> <file leaf-file-name="CHANGELOG.md" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/CHANGELOG.md">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret column="8" selection-start-column="8" selection-end-column="8" />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="main.dart" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/example/lib/main.dart"> <entry file="file://$PROJECT_DIR$/example/lib/main.dart">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="395"> <state relative-caret-position="102">
<caret line="101" column="38" lean-forward="false" selection-start-line="101" selection-start-column="38" selection-end-line="101" selection-end-column="38" /> <caret line="15" column="25" lean-forward="true" selection-start-line="15" selection-start-column="25" selection-end-line="15" selection-end-column="25" />
<folding>
<element signature="e#0#39#0" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
...@@ -162,8 +121,8 @@ ...@@ -162,8 +121,8 @@
<find>sourceFile</find> <find>sourceFile</find>
<find>hideUrlBar</find> <find>hideUrlBar</find>
<find>InAppBrowser</find> <find>InAppBrowser</find>
<find>###</find>
<find>presentationStyle</find> <find>presentationStyle</find>
<find>###</find>
</findStrings> </findStrings>
<replaceStrings> <replaceStrings>
<replace>activity.getPreferences(0)</replace> <replace>activity.getPreferences(0)</replace>
...@@ -171,15 +130,13 @@ ...@@ -171,15 +130,13 @@
<replace>com.pichillilorenzo.flutter_inappbrowser</replace> <replace>com.pichillilorenzo.flutter_inappbrowser</replace>
<replace>flutter_inappbrowser</replace> <replace>flutter_inappbrowser</replace>
</replaceStrings> </replaceStrings>
<dirStrings>
<dir>$PROJECT_DIR$/example/android</dir>
</dirStrings>
</component> </component>
<component name="Git.Settings"> <component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component> </component>
<component name="GradleLocalSettings">
<option name="externalProjectsViewState">
<projects_view />
</option>
</component>
<component name="IdeDocumentHistory"> <component name="IdeDocumentHistory">
<option name="CHANGED_PATHS"> <option name="CHANGED_PATHS">
<list> <list>
...@@ -201,38 +158,27 @@ ...@@ -201,38 +158,27 @@
<option value="$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowser.java" /> <option value="$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowser.java" />
<option value="$PROJECT_DIR$/ios/flutter_inappbrowser.podspec" /> <option value="$PROJECT_DIR$/ios/flutter_inappbrowser.podspec" />
<option value="$PROJECT_DIR$/android/build.gradle" /> <option value="$PROJECT_DIR$/android/build.gradle" />
<option value="$PROJECT_DIR$/pubspec.yaml" />
<option value="$PROJECT_DIR$/example/ios/Podfile" /> <option value="$PROJECT_DIR$/example/ios/Podfile" />
<option value="$PROJECT_DIR$/CHANGELOG.md" /> <option value="$PROJECT_DIR$/pubspec.yaml" />
<option value="$PROJECT_DIR$/example/lib/main.dart" />
<option value="$PROJECT_DIR$/lib/flutter_inappbrowser.dart" /> <option value="$PROJECT_DIR$/lib/flutter_inappbrowser.dart" />
<option value="$PROJECT_DIR$/README.md" /> <option value="$PROJECT_DIR$/README.md" />
<option value="$PROJECT_DIR$/CHANGELOG.md" />
<option value="$PROJECT_DIR$/example/lib/main.dart" />
</list> </list>
</option> </option>
</component> </component>
<component name="ProjectFrameBounds"> <component name="ProjectFrameBounds">
<option name="x" value="96" /> <option name="x" value="-1808" />
<option name="y" value="23" /> <option name="y" value="-21" />
<option name="width" value="1582" /> <option name="width" value="1589" />
<option name="height" value="1018" /> <option name="height" value="1057" />
</component> </component>
<component name="ProjectLevelVcsManager" settingsEditedManually="true" /> <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectView"> <component name="ProjectView">
<navigator currentView="ProjectPane" proportions="" version="1"> <navigator currentView="ProjectPane" proportions="" version="1">
<flattenPackages />
<showMembers />
<showModules />
<showLibraryContents />
<hideEmptyPackages />
<abbreviatePackageNames />
<autoscrollToSource />
<autoscrollFromSource />
<sortByType />
<manualOrder />
<foldersAlwaysOnTop value="true" /> <foldersAlwaysOnTop value="true" />
</navigator> </navigator>
<panes> <panes>
<pane id="Scratches" />
<pane id="ProjectPane"> <pane id="ProjectPane">
<subPane> <subPane>
<expand> <expand>
...@@ -243,7 +189,7 @@ ...@@ -243,7 +189,7 @@
<path> <path>
<item name="flutter_inappbrowser" type="b2602c69:ProjectViewProjectNode" /> <item name="flutter_inappbrowser" type="b2602c69:ProjectViewProjectNode" />
<item name="flutter_inappbrowser" type="462c0819:PsiDirectoryNode" /> <item name="flutter_inappbrowser" type="462c0819:PsiDirectoryNode" />
<item name="example" type="462c0819:PsiDirectoryNode" /> <item name="android" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="flutter_inappbrowser" type="b2602c69:ProjectViewProjectNode" /> <item name="flutter_inappbrowser" type="b2602c69:ProjectViewProjectNode" />
...@@ -255,25 +201,35 @@ ...@@ -255,25 +201,35 @@
</subPane> </subPane>
<option name="show-excluded-files" value="false" /> <option name="show-excluded-files" value="false" />
</pane> </pane>
<pane id="Scope" />
<pane id="AndroidView" />
<pane id="PackagesPane" /> <pane id="PackagesPane" />
<pane id="AndroidView" />
<pane id="Scope">
<subPane subId="Project Files">
<expand>
<path>
<item name="Root" type="cbb8eebc:String" user="Root" />
<item name="flutter_inappbrowser" type="cbb8eebc:String" user="flutter_inappbrowser" />
</path>
</expand>
<select />
</subPane>
</pane>
</panes> </panes>
</component> </component>
<component name="PropertiesComponent"> <component name="PropertiesComponent">
<property name="last_opened_file_path" value="$PROJECT_DIR$" /> <property name="Downloaded.Files.Path.Enabled" value="true" />
<property name="Repository.Attach.JavaDocs" value="false" />
<property name="Repository.Attach.Sources" value="false" />
<property name="android.project.structure.last.selected" value="SDK Location" />
<property name="android.project.structure.proportion" value="0.15" />
<property name="dart.analysis.tool.window.force.activate" value="false" /> <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="io.flutter.reload.alreadyRun" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="project.structure.last.edited" value="Libraries" /> <property name="project.structure.last.edited" value="Libraries" />
<property name="project.structure.proportion" value="0.15" /> <property name="project.structure.proportion" value="0.15" />
<property name="project.structure.side.proportion" value="0.2" /> <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" />
<property name="settings.editor.selected.configurable" value="configurable.group.language" /> <property name="settings.editor.selected.configurable" value="configurable.group.language" />
<property name="android.project.structure.last.selected" value="SDK Location" /> <property name="show.migrate.to.gradle.popup" value="false" />
<property name="android.project.structure.proportion" value="0.15" />
</component> </component>
<component name="RecentsManager"> <component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS"> <key name="CopyFile.RECENT_KEYS">
...@@ -297,8 +253,6 @@ ...@@ -297,8 +253,6 @@
</component> </component>
<component name="RunManager"> <component name="RunManager">
<configuration default="true" type="AndroidJUnit" factoryName="Android JUnit"> <configuration default="true" type="AndroidJUnit" factoryName="Android JUnit">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<module name="" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" /> <option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" /> <option name="PACKAGE_NAME" />
...@@ -308,30 +262,17 @@ ...@@ -308,30 +262,17 @@
<option name="VM_PARAMETERS" value="-ea" /> <option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" /> <option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" /> <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" /> <option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE"> <option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" /> <value defaultName="singleModule" />
</option> </option>
<envs />
<patterns /> <patterns />
</configuration> </configuration>
<configuration default="true" type="Application" factoryName="Application"> <configuration default="true" type="Application" factoryName="Application">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<option name="MAIN_CLASS_NAME" />
<option name="VM_PARAMETERS" />
<option name="PROGRAM_PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="ENABLE_SWING_INSPECTOR" value="false" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<module name="" />
<envs />
</configuration> </configuration>
<configuration default="true" type="JetRunConfigurationType" factoryName="Kotlin"> <configuration default="true" type="JetRunConfigurationType" factoryName="Kotlin">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> <module name="flutter_webview" />
<option name="VM_PARAMETERS" /> <option name="VM_PARAMETERS" />
<option name="PROGRAM_PARAMETERS" /> <option name="PROGRAM_PARAMETERS" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
...@@ -339,10 +280,9 @@ ...@@ -339,10 +280,9 @@
<option name="PASS_PARENT_ENVS" value="true" /> <option name="PASS_PARENT_ENVS" value="true" />
<option name="MAIN_CLASS_NAME" /> <option name="MAIN_CLASS_NAME" />
<option name="WORKING_DIRECTORY" /> <option name="WORKING_DIRECTORY" />
<module name="flutter_webview" />
<envs />
</configuration> </configuration>
<configuration default="true" type="KotlinStandaloneScriptRunConfigurationType" factoryName="Kotlin script"> <configuration default="true" type="KotlinStandaloneScriptRunConfigurationType" factoryName="Kotlin script">
<module name="flutter_webview" />
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<option name="filePath" /> <option name="filePath" />
<option name="vmParameters" /> <option name="vmParameters" />
...@@ -358,8 +298,6 @@ ...@@ -358,8 +298,6 @@
<option name="PASS_PARENT_ENVS" value="true" /> <option name="PASS_PARENT_ENVS" value="true" />
<option name="MAIN_CLASS_NAME" /> <option name="MAIN_CLASS_NAME" />
<option name="WORKING_DIRECTORY" /> <option name="WORKING_DIRECTORY" />
<module name="flutter_webview" />
<envs />
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<option name="filePath" /> <option name="filePath" />
<option name="vmParameters" /> <option name="vmParameters" />
...@@ -375,18 +313,8 @@ ...@@ -375,18 +313,8 @@
<option name="PASS_PARENT_ENVS" value="true" /> <option name="PASS_PARENT_ENVS" value="true" />
<option name="MAIN_CLASS_NAME" /> <option name="MAIN_CLASS_NAME" />
<option name="WORKING_DIRECTORY" /> <option name="WORKING_DIRECTORY" />
<envs />
</configuration>
<configuration default="true" type="Remote" factoryName="Remote">
<option name="USE_SOCKET_TRANSPORT" value="true" />
<option name="SERVER_MODE" value="false" />
<option name="SHMEM_ADDRESS" value="javadebug" />
<option name="HOST" value="localhost" />
<option name="PORT" value="5005" />
</configuration> </configuration>
<configuration default="true" type="TestNG" factoryName="TestNG"> <configuration default="true" type="TestNG" factoryName="TestNG">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<module name="" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" /> <option name="ALTERNATIVE_JRE_PATH" />
<option name="SUITE_NAME" /> <option name="SUITE_NAME" />
...@@ -399,15 +327,12 @@ ...@@ -399,15 +327,12 @@
<option name="PARAMETERS" /> <option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="%MODULE_WORKING_DIR%" /> <option name="WORKING_DIRECTORY" value="%MODULE_WORKING_DIR%" />
<option name="OUTPUT_DIRECTORY" /> <option name="OUTPUT_DIRECTORY" />
<option name="ANNOTATION_TYPE" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" /> <option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE"> <option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" /> <value defaultName="singleModule" />
</option> </option>
<option name="USE_DEFAULT_REPORTERS" value="false" /> <option name="USE_DEFAULT_REPORTERS" value="false" />
<option name="PROPERTIES_FILE" /> <option name="PROPERTIES_FILE" />
<envs />
<properties /> <properties />
<listeners /> <listeners />
</configuration> </configuration>
...@@ -430,9 +355,6 @@ ...@@ -430,9 +355,6 @@
<option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" /> <option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
</configuration> </configuration>
</component> </component>
<component name="ShelveChangesManager" show_recycled="false">
<option name="remove_strategy" value="false" />
</component>
<component name="SvnConfiguration"> <component name="SvnConfiguration">
<configuration /> <configuration />
</component> </component>
...@@ -447,75 +369,76 @@ ...@@ -447,75 +369,76 @@
<servers /> <servers />
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="96" y="23" width="1582" height="1018" extended-state="0" /> <frame x="-1808" y="-21" width="1589" height="1057" extended-state="0" />
<editor active="true" /> <editor active="true" />
<layout> <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 anchor="bottom" id="Android Profiler" order="7" show_stripe_button="false" />
<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 anchor="bottom" id="TODO" order="6" />
<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 anchor="bottom" id="Messages" order="12" weight="0.2375" />
<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 anchor="right" id="Palette&#9;" order="3" />
<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="Image Layers" order="2" />
<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="Build Variants" order="2" side_tool="true" />
<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.31735888" sideWeight="0.5026455" order="8" side_tool="true" content_ui="tabs" /> <window_info anchor="right" id="Capture Analysis" order="3" />
<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="14" side_tool="false" content_ui="tabs" /> <window_info anchor="bottom" id="Event Log" order="8" sideWeight="0.50316054" side_tool="true" weight="0.32083333" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3211111" sideWeight="0.4973545" order="2" side_tool="false" content_ui="tabs" /> <window_info anchor="bottom" id="Dart Analysis" order="14" weight="0.3290735" />
<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="9" side_tool="false" content_ui="tabs" /> <window_info anchor="bottom" id="Run" order="2" sideWeight="0.49683943" weight="0.32123798" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.27888888" sideWeight="0.4973545" order="10" side_tool="false" content_ui="tabs" /> <window_info anchor="bottom" id="Version Control" order="9" />
<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.32936507" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info active="true" anchor="bottom" id="Terminal" order="10" sideWeight="0.4973545" visible="true" weight="0.25933832" />
<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="11" side_tool="false" content_ui="tabs" /> <window_info anchor="right" id="Flutter Outline" order="3" weight="0.32922077" />
<window_info id="Captures" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32936507" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> <window_info anchor="bottom" id="Logcat" order="11" />
<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="Captures" order="2" weight="0.32936507" />
<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="Capture Tool" order="2" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.18376623" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" /> <window_info id="Designer" order="2" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24969475" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.18293472" />
<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="Structure" order="1" side_tool="true" weight="0.24969475" />
<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 anchor="right" id="Device File Explorer" order="3" side_tool="true" />
<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 anchor="right" id="Theme Preview" order="3" />
<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 anchor="bottom" id="Debug" order="3" weight="0.4" />
<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.32987013" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Favorites" order="2" side_tool="true" />
<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 anchor="right" id="Flutter Inspector" order="3" weight="0.32987013" />
<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 anchor="bottom" id="Inspection" order="5" weight="0.4" />
<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 anchor="right" id="Commander" order="0" weight="0.4" />
<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="13" side_tool="false" content_ui="tabs" /> <window_info anchor="right" id="Assistant" order="4" visible="true" weight="0.32987013" />
<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 anchor="bottom" id="Message" order="0" />
<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 anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.23777778" sideWeight="0.5" order="12" side_tool="false" content_ui="tabs" /> <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<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 anchor="bottom" id="Dependency Viewer" order="13" weight="0.32800853" />
<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 anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="bottom" id="Find" order="1" weight="0.328125" />
</layout> </layout>
<layout-to-restore> <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="Designer" order="4" />
<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 anchor="bottom" id="Dart Analysis" order="14" weight="0.3290735" />
<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" order="2" side_tool="true" />
<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 anchor="bottom" id="Run" order="2" sideWeight="0.4973545" weight="0.32161874" />
<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 anchor="bottom" id="Cvs" order="4" weight="0.25" />
<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.31735888" sideWeight="0.5026455" order="8" side_tool="true" content_ui="tabs" /> <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<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="14" side_tool="false" content_ui="tabs" /> <window_info anchor="right" id="Flutter Inspector" order="8" weight="0.32987013" />
<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.32936507" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Favorites" order="7" side_tool="true" />
<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="11" side_tool="false" content_ui="tabs" /> <window_info id="Captures" order="6" weight="0.32936507" />
<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="13" side_tool="false" content_ui="tabs" /> <window_info id="Capture Tool" order="3" />
<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 anchor="right" id="Capture Analysis" order="6" />
<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 anchor="bottom" id="Android Profiler" order="7" show_stripe_button="false" />
<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 anchor="right" id="Commander" order="0" weight="0.4" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24969475" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info anchor="bottom" id="Event Log" order="8" sideWeight="0.5026455" side_tool="true" weight="0.31735888" />
<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 anchor="bottom" id="TODO" order="6" />
<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 anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<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 anchor="right" id="Device File Explorer" order="4" side_tool="true" />
<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 anchor="right" id="Flutter Outline" order="3" weight="0.32936507" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.23777778" sideWeight="0.5" order="12" side_tool="false" content_ui="tabs" /> <window_info anchor="bottom" id="Logcat" order="11" />
<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 anchor="bottom" id="Dependency Viewer" order="13" weight="0.32800853" />
<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 anchor="bottom" id="Version Control" order="9" />
<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 anchor="bottom" id="Terminal" order="10" sideWeight="0.4973545" visible="true" weight="0.27888888" />
<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 content_ui="combo" id="Project" order="0" visible="true" weight="0.18376623" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32161874" sideWeight="0.4973545" order="2" side_tool="false" content_ui="tabs" /> <window_info anchor="bottom" id="Messages" order="12" weight="0.23777778" />
<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="9" side_tool="false" content_ui="tabs" /> <window_info anchor="bottom" id="Message" order="0" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.27888888" sideWeight="0.4973545" order="10" side_tool="false" content_ui="tabs" /> <window_info id="Image Layers" order="5" />
<window_info id="Captures" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32936507" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> <window_info anchor="right" id="Palette&#9;" order="5" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.18376623" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" /> <window_info anchor="right" id="Theme Preview" order="7" />
<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="Structure" order="1" weight="0.24969475" />
<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 anchor="bottom" id="Inspection" order="5" weight="0.4" />
<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 anchor="bottom" id="Find" order="1" weight="0.3290735" />
<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.32987013" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" /> <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
</layout-to-restore> </layout-to-restore>
</component> </component>
<component name="VcsContentAnnotationSettings"> <component name="VcsContentAnnotationSettings">
...@@ -525,44 +448,12 @@ ...@@ -525,44 +448,12 @@
<breakpoint-manager> <breakpoint-manager>
<option name="time" value="9" /> <option name="time" value="9" />
</breakpoint-manager> </breakpoint-manager>
<watches-manager />
</component> </component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<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/InAppBrowserFlutterPlugin.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/InAppBrowserFlutterPlugin.java"> <entry file="file://$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowserFlutterPlugin.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="105"> <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" /> <caret line="74" column="13" selection-start-line="74" selection-start-column="13" selection-end-line="74" selection-end-column="13" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
...@@ -584,86 +475,51 @@ ...@@ -584,86 +475,51 @@
<entry file="file://$PROJECT_DIR$/example/android/app/src/main/java/com/pichillilorenzo/flutterwebviewexample/MainActivity.java"> <entry file="file://$PROJECT_DIR$/example/android/app/src/main/java/com/pichillilorenzo/flutterwebviewexample/MainActivity.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="135"> <state relative-caret-position="135">
<caret line="9" column="19" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="13" selection-end-column="0" /> <caret line="9" column="19" selection-end-line="13" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/ios/Classes/SwiftFlutterWebviewPlugin.swift" /> <entry file="file://$PROJECT_DIR$/ios/Classes/SwiftFlutterWebviewPlugin.swift" />
<entry file="file://$PROJECT_DIR$/example/ios/Podfile.lock"> <entry file="file://$PROJECT_DIR$/example/ios/Podfile.lock">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state />
<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> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/example/ios/Flutter/Generated.xcconfig"> <entry file="file://$PROJECT_DIR$/example/ios/Flutter/Generated.xcconfig">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state />
<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> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/example/ios/Pods/Manifest.lock"> <entry file="file://$PROJECT_DIR$/example/ios/Pods/Manifest.lock">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="330"> <state relative-caret-position="330">
<caret line="22" column="0" lean-forward="false" selection-start-line="22" selection-start-column="0" selection-end-line="22" selection-end-column="0" /> <caret line="22" selection-start-line="22" selection-end-line="22" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/example/ios/Runner/GeneratedPluginRegistrant.m"> <entry file="file://$PROJECT_DIR$/example/ios/Runner/GeneratedPluginRegistrant.m">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state />
<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$/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> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/example/ios/Runner/AppDelegate.swift"> <entry file="file://$PROJECT_DIR$/example/ios/Runner/AppDelegate.swift">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state />
<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> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/example/pubspec.lock"> <entry file="file://$PROJECT_DIR$/example/pubspec.lock">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state />
<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$/android/local.properties">
<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$/android/settings.gradle">
<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" />
</state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/android/gradle.properties"> <entry file="file://$PROJECT_DIR$/android/gradle.properties">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state />
<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> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/example/android/gradle.properties"> <entry file="file://$PROJECT_DIR$/example/android/gradle.properties">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state />
<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> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/ios/Classes/InAppBrowser.h" /> <entry file="file://$PROJECT_DIR$/ios/Classes/InAppBrowser.h" />
...@@ -671,14 +527,14 @@ ...@@ -671,14 +527,14 @@
<entry file="file://$PROJECT_DIR$/LICENSE"> <entry file="file://$PROJECT_DIR$/LICENSE">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="15"> <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" /> <caret line="1" column="31" selection-start-line="1" selection-start-column="31" selection-end-line="1" selection-end-column="31" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/android/src/main/AndroidManifest.xml"> <entry file="file://$PROJECT_DIR$/android/src/main/AndroidManifest.xml">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90"> <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" /> <caret line="6" lean-forward="true" selection-start-line="6" selection-end-line="6" />
</state> </state>
</provider> </provider>
</entry> </entry>
...@@ -686,225 +542,172 @@ ...@@ -686,225 +542,172 @@
<entry file="file://$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowserDialog.java" /> <entry file="file://$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowserDialog.java" />
<entry file="file://$PROJECT_DIR$/example/ios/Flutter/Release.xcconfig"> <entry file="file://$PROJECT_DIR$/example/ios/Flutter/Release.xcconfig">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state />
<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> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/example/ios/Flutter/Debug.xcconfig"> <entry file="file://$PROJECT_DIR$/example/ios/Flutter/Debug.xcconfig">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="30"> <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" /> <caret line="2" selection-start-line="2" selection-end-line="2" selection-end-column="24" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowserFlutterPlugin.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="15">
<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> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/example/android/app/src/main/AndroidManifest.xml"> <entry file="file://$PROJECT_DIR$/example/android/app/src/main/AndroidManifest.xml">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state />
<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> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/ios/Classes/InAppBrowserWebViewController.swift"> <entry file="file://$PROJECT_DIR$/ios/Classes/InAppBrowserWebViewController.swift">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180"> <state relative-caret-position="180">
<caret line="12" column="0" lean-forward="false" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" /> <caret line="12" selection-start-line="12" selection-end-line="12" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/ios/Classes/SwiftFlutterPlugin.swift"> <entry file="file://$PROJECT_DIR$/ios/Classes/SwiftFlutterPlugin.swift">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="191"> <state relative-caret-position="191">
<caret line="107" column="9" lean-forward="false" selection-start-line="107" selection-start-column="9" selection-end-line="107" selection-end-column="9" /> <caret line="107" column="9" selection-start-line="107" selection-start-column="9" selection-end-line="107" selection-end-column="9" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/example/android/build.gradle"> <entry file="file://$PROJECT_DIR$/example/android/build.gradle">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state />
<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$/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> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/example/android/settings.gradle"> <entry file="file://$PROJECT_DIR$/example/android/settings.gradle">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state />
<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> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/example/android/local.properties"> <entry file="file://$PROJECT_DIR$/example/android/local.properties">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state />
<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> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/example/android/app/build.gradle"> <entry file="file://$PROJECT_DIR$/example/android/app/build.gradle">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-27"> <state relative-caret-position="-27" />
<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> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/android/build.gradle"> <entry file="file://$PROJECT_DIR$/android/build.gradle">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="585"> <state relative-caret-position="585">
<caret line="39" column="60" lean-forward="false" selection-start-line="39" selection-start-column="60" selection-end-line="39" selection-end-column="60" /> <caret line="39" column="60" selection-start-line="39" selection-start-column="60" selection-end-line="39" selection-end-column="60" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/example/flutter_plugin/lib/flutter_plugin.dart" /> <entry file="file://$PROJECT_DIR$/example/flutter_plugin/lib/flutter_plugin.dart" />
<entry file="file://$PROJECT_DIR$/flutter_inappbrowser.iml"> <entry file="file://$PROJECT_DIR$/pubspec.lock">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="330"> <state />
<caret line="22" column="9" lean-forward="true" selection-start-line="22" selection-start-column="9" selection-end-line="22" selection-end-column="9" /> </provider>
</entry>
<entry file="file://$PROJECT_DIR$/ios/flutter_inappbrowser.podspec">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="240">
<caret line="16" column="24" selection-start-line="16" selection-start-column="24" selection-end-line="16" selection-end-column="24" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/pubspec.lock"> <entry file="file://$PROJECT_DIR$/example/ios/Podfile">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state relative-caret-position="539">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> <caret line="65" column="52" selection-start-line="65" selection-start-column="52" selection-end-line="65" selection-end-column="52" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/pubspec.yaml"> <entry file="file://$PROJECT_DIR$/example/pubspec.yaml">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180"> <state>
<caret line="12" column="9" lean-forward="false" selection-start-line="12" selection-start-column="9" selection-end-line="12" selection-end-column="9" /> <caret column="6" selection-start-column="6" selection-end-column="26" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/ios/flutter_inappbrowser.podspec"> <entry file="file://$PROJECT_DIR$/android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowserFlutterPlugin.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="240"> <state relative-caret-position="1560">
<caret line="16" column="24" lean-forward="false" selection-start-line="16" selection-start-column="24" selection-end-line="16" selection-end-column="24" /> <caret line="157" selection-start-line="157" selection-end-line="157" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/example/ios/Podfile"> <entry file="file://$PROJECT_DIR$/android/gradlew" />
<entry file="file://$PROJECT_DIR$/android/gradlew.bat" />
<entry file="file://$PROJECT_DIR$/android/local.properties">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="539"> <state />
<caret line="65" column="52" lean-forward="false" selection-start-line="65" selection-start-column="52" selection-end-line="65" selection-end-column="52" /> </provider>
</entry>
<entry file="file://$PROJECT_DIR$/android/settings.gradle">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret column="20" selection-start-column="20" selection-end-column="20" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/example/pubspec.yaml"> <entry file="file://$PROJECT_DIR$/example/flutter_webview_example.iml">
<provider selected="true" editor-type-id="text-editor">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/example/flutter_webview_example_android.iml">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state />
<caret line="0" column="6" lean-forward="false" selection-start-line="0" selection-start-column="6" selection-end-line="0" selection-end-column="26" /> </provider>
<folding /> </entry>
<entry file="file://$PROJECT_DIR$/flutter_inappbrowser_android.iml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="420">
<caret line="28" column="14" lean-forward="true" selection-start-line="28" selection-start-column="14" selection-end-line="28" selection-end-column="14" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/CHANGELOG.md"> <entry file="file://$PROJECT_DIR$/android/flutter_inappbrowser.iml" />
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> <entry file="file://$PROJECT_DIR$/flutter_inappbrowser.iml">
<state split_layout="SPLIT"> <provider selected="true" editor-type-id="text-editor">
<first_editor relative-caret-position="45"> <state relative-caret-position="330">
<caret line="3" column="49" lean-forward="true" selection-start-line="3" selection-start-column="19" selection-end-line="3" selection-end-column="49" /> <caret line="22" column="9" lean-forward="true" selection-start-line="22" selection-start-column="9" selection-end-line="22" selection-end-column="9" />
<folding />
</first_editor>
<second_editor />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/example/lib/main.dart"> <entry file="file://$PROJECT_DIR$/.idea/workspace.xml">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="395"> <state relative-caret-position="-10645" />
<caret line="101" column="38" lean-forward="false" selection-start-line="101" selection-start-column="38" selection-end-line="101" selection-end-column="38" /> </provider>
<folding> </entry>
<element signature="e#0#39#0" expanded="true" /> <entry file="file://$PROJECT_DIR$/pubspec.yaml">
</folding> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="30">
<caret line="2" column="14" lean-forward="true" selection-start-line="2" selection-start-column="14" selection-end-line="2" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/CHANGELOG.md">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret column="8" selection-start-column="8" selection-end-column="8" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/lib/flutter_inappbrowser.dart"> <entry file="file://$PROJECT_DIR$/lib/flutter_inappbrowser.dart">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="135"> <state relative-caret-position="-624">
<caret line="337" column="40" lean-forward="false" selection-start-line="337" selection-start-column="40" selection-end-line="337" selection-end-column="40" /> <caret line="268" column="33" selection-start-line="268" selection-start-column="17" selection-end-line="268" selection-end-column="33" />
<folding>
<element signature="e#814#834#0" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/README.md"> <entry file="file://$PROJECT_DIR$/README.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> <provider selected="true" editor-type-id="text-editor">
<state split_layout="SPLIT"> <state relative-caret-position="247">
<first_editor relative-caret-position="133"> <caret line="19" column="15" selection-start-line="19" selection-start-column="3" selection-end-line="19" selection-end-column="15" />
<caret line="460" column="0" lean-forward="true" selection-start-line="460" selection-start-column="0" selection-end-line="460" selection-end-column="0" /> </state>
<folding> </provider>
<marker date="1538738179486" expanded="true" signature="1261:1358" ph="..." /> </entry>
<marker date="1538738179486" expanded="true" signature="1402:2447" ph="{...}" /> <entry file="file://$PROJECT_DIR$/example/lib/main.dart">
<marker date="1538738179486" expanded="true" signature="1448:1488" ph="{...}" /> <provider selected="true" editor-type-id="text-editor">
<marker date="1538738179486" expanded="true" signature="1540:2114" ph="{...}" /> <state relative-caret-position="102">
<marker date="1538738179486" expanded="true" signature="1826:1879" ph="&quot;&quot;&quot;...&quot;&quot;&quot;" /> <caret line="15" column="25" lean-forward="true" selection-start-line="15" selection-start-column="25" selection-end-line="15" selection-end-column="25" />
<marker date="1538738179486" expanded="true" signature="1934:2006" ph="&quot;&quot;&quot;...&quot;&quot;&quot;" />
<marker date="1538738179486" expanded="true" signature="2185:2246" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="2276:2319" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="2379:2444" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="2574:2639" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="2680:3269" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="2714:2742" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="2793:3267" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="2821:3262" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="2847:3255" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="2875:2958" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="2904:2947" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="2984:3246" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="3019:3235" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="3098:3165" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="10852:10860" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="10979:10987" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="11147:11155" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="11251:11259" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="11543:11549" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="14258:14355" ph="..." />
<marker date="1538738179486" expanded="true" signature="14399:14795" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="14453:14493" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="14545:14585" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="14656:14717" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="14747:14790" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="14914:15224" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="15017:15064" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="15096:15143" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="15175:15222" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="15295:15317" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="15393:15458" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="15499:16401" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="15533:15561" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="15612:16399" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="15640:16394" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="15666:16387" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="15694:15777" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="15723:15766" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="15803:16378" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="15838:16367" ph="(...)" />
<marker date="1538738179486" expanded="true" signature="15924:16138" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="16171:16290" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="19145:19153" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="19251:19259" ph="{...}" />
<marker date="1538738179486" expanded="true" signature="19357:19365" ph="{...}" />
</folding>
</first_editor>
<second_editor />
</state> </state>
</provider> </provider>
</entry> </entry>
......
## 0.2.1
- added InAppBrowser.onConsoleMessage() method to manage console messages
- fixed InAppBrowser.injectScriptCode() method when there is not a return value
## 0.2.0 ## 0.2.0
- added support of Chrome CustomTabs for Android - added support of Chrome CustomTabs for Android
......
...@@ -41,6 +41,11 @@ class MyInAppBrowser extends InAppBrowser { ...@@ -41,6 +41,11 @@ class MyInAppBrowser extends InAppBrowser {
print("\n\nStopped $url\n\n"); print("\n\nStopped $url\n\n");
// print body html // print body html
print(await this.injectScriptCode("document.body.innerHTML")); print(await this.injectScriptCode("document.body.innerHTML"));
// console messages
await this.injectScriptCode("console.log({'testObject': 5});"); // the message will be: [object Object]
await this.injectScriptCode("console.log('testObjectStringify', JSON.stringify({'testObject': 5}));"); // the message will be: testObjectStringify {"testObject": 5}
await this.injectScriptCode("console.error('testError', false);"); // the message will be: testError false
// add jquery library and custom javascript // add jquery library and custom javascript
await this.injectScriptFile("https://code.jquery.com/jquery-3.3.1.min.js"); await this.injectScriptFile("https://code.jquery.com/jquery-3.3.1.min.js");
...@@ -73,6 +78,17 @@ class MyInAppBrowser extends InAppBrowser { ...@@ -73,6 +78,17 @@ class MyInAppBrowser extends InAppBrowser {
this.loadUrl(url); this.loadUrl(url);
} }
@override
void onConsoleMessage(ConsoleMessage consoleMessage) {
print("""
console output:
sourceURL: ${consoleMessage.sourceURL}
lineNumber: ${consoleMessage.lineNumber}
message: ${consoleMessage.message}
messageLevel: ${consoleMessage.messageLevel}
""");
}
} }
MyInAppBrowser inAppBrowser = new MyInAppBrowser(); MyInAppBrowser inAppBrowser = new MyInAppBrowser();
...@@ -228,6 +244,14 @@ Event fires when the `InAppBrowser` window is closed. ...@@ -228,6 +244,14 @@ Event fires when the `InAppBrowser` window is closed.
} }
``` ```
Event fires when the `InAppBrowser` webview receives a `ConsoleMessage`.
```dart
@override
void onConsoleMessage(ConsoleMessage consoleMessage) {
}
```
Give the host application a chance to take control when a URL is about to be loaded in the current WebView. Give the host application a chance to take control when a URL is about to be loaded in the current WebView.
In order to be able to listen this event, you need to set `useShouldOverrideUrlLoading` option to `true`. In order to be able to listen this event, you need to set `useShouldOverrideUrlLoading` option to `true`.
```dart ```dart
......
flutter_inappbrowser
\ No newline at end of file
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<Objective-C-extensions>
<file>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
</file>
<class>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
</class>
<extensions>
<pair source="cpp" header="h" fileNamingConvention="NONE" />
<pair source="c" header="h" fileNamingConvention="NONE" />
</extensions>
</Objective-C-extensions>
</code_scheme>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />
</GradleProjectSettings>
</option>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="NullableNotNullManager">
<option name="myDefaultNullable" value="android.support.annotation.Nullable" />
<option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
<option name="myNullables">
<value>
<list size="7">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
<item index="2" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" />
<item index="3" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
<item index="4" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
<item index="5" class="java.lang.String" itemvalue="androidx.annotation.Nullable" />
<item index="6" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNullable" />
</list>
</value>
</option>
<option name="myNotNulls">
<value>
<list size="6">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
<item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
<item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
<item index="4" class="java.lang.String" itemvalue="androidx.annotation.NonNull" />
<item index="5" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNonNull" />
</list>
</value>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/flutter_inappbrowser.iml" filepath="$PROJECT_DIR$/flutter_inappbrowser.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
</set>
</option>
</component>
</project>
\ No newline at end of file
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
...@@ -285,15 +285,20 @@ public class InAppBrowserFlutterPlugin implements MethodCallHandler { ...@@ -285,15 +285,20 @@ public class InAppBrowserFlutterPlugin implements MethodCallHandler {
try { try {
String msg; String msg;
msg = reader.nextString(); if (reader.peek() == JsonToken.STRING) {
msg = reader.nextString();
JsonReader reader2 = new JsonReader(new StringReader(msg)); JsonReader reader2 = new JsonReader(new StringReader(msg));
reader2.setLenient(true); reader2.setLenient(true);
if (reader2.peek() == JsonToken.STRING) if (reader2.peek() == JsonToken.STRING)
msg = reader2.nextString(); msg = reader2.nextString();
result.success(msg); result.success(msg);
}
else {
result.success("");
}
} catch (IOException e) { } catch (IOException e) {
Log.e(LOG_TAG, "IOException", e); Log.e(LOG_TAG, "IOException", e);
......
...@@ -4,11 +4,16 @@ import android.content.Intent; ...@@ -4,11 +4,16 @@ import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.util.Log;
import android.view.View; import android.view.View;
import android.webkit.ConsoleMessage;
import android.webkit.ValueCallback; import android.webkit.ValueCallback;
import android.webkit.WebChromeClient; import android.webkit.WebChromeClient;
import android.webkit.WebView; import android.webkit.WebView;
import java.util.HashMap;
import java.util.Map;
public class InAppBrowserWebChromeClient extends WebChromeClient { public class InAppBrowserWebChromeClient extends WebChromeClient {
protected static final String LOG_TAG = "IABWebChromeClient"; protected static final String LOG_TAG = "IABWebChromeClient";
...@@ -22,6 +27,18 @@ public class InAppBrowserWebChromeClient extends WebChromeClient { ...@@ -22,6 +27,18 @@ public class InAppBrowserWebChromeClient extends WebChromeClient {
this.activity = activity; this.activity = activity;
} }
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
Map<String, Object> obj = new HashMap<>();
obj.put("uuid", activity.uuid);
obj.put("sourceURL", consoleMessage.sourceId());
obj.put("lineNumber", consoleMessage.lineNumber());
obj.put("message", consoleMessage.message());
obj.put("messageLevel", consoleMessage.messageLevel().toString());
InAppBrowserFlutterPlugin.channel.invokeMethod("onConsoleMessage", obj);
return true;
}
@Override @Override
public void onProgressChanged(WebView view, int progress) { public void onProgressChanged(WebView view, int progress) {
if (activity.progressBar != null) { if (activity.progressBar != null) {
......
...@@ -4,6 +4,7 @@ import android.content.Intent; ...@@ -4,6 +4,7 @@ import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.net.Uri; import android.net.Uri;
import android.net.http.SslError; import android.net.http.SslError;
import android.os.Build;
import android.util.Log; import android.util.Log;
import android.webkit.CookieManager; import android.webkit.CookieManager;
import android.webkit.CookieSyncManager; import android.webkit.CookieSyncManager;
...@@ -124,7 +125,7 @@ public class InAppBrowserWebViewClient extends WebViewClient { ...@@ -124,7 +125,7 @@ public class InAppBrowserWebViewClient extends WebViewClient {
activity.isLoading = false; activity.isLoading = false;
// CB-10395 InAppBrowserFlutterPlugin's WebView not storing cookies reliable to local device storage // CB-10395 InAppBrowserFlutterPlugin's WebView not storing cookies reliable to local device storage
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
CookieManager.getInstance().flush(); CookieManager.getInstance().flush();
} else { } else {
CookieSyncManager.getInstance().sync(); CookieSyncManager.getInstance().sync();
...@@ -134,6 +135,10 @@ public class InAppBrowserWebViewClient extends WebViewClient { ...@@ -134,6 +135,10 @@ public class InAppBrowserWebViewClient extends WebViewClient {
view.clearFocus(); view.clearFocus();
view.requestFocus(); view.requestFocus();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
view.evaluateJavascript(activity.jsConsoleLogScript, null);
}
Map<String, Object> obj = new HashMap<>(); Map<String, Object> obj = new HashMap<>();
obj.put("uuid", activity.uuid); obj.put("uuid", activity.uuid);
obj.put("url", url); obj.put("url", url);
......
...@@ -38,6 +38,32 @@ public class WebViewActivity extends AppCompatActivity { ...@@ -38,6 +38,32 @@ public class WebViewActivity extends AppCompatActivity {
public boolean isLoading = false; public boolean isLoading = false;
public boolean isHidden = false; public boolean isHidden = false;
static final String jsConsoleLogScript = "(function() {\n"+
" var oldLogs = {\n"+
" 'log': console.log,\n"+
" 'debug': console.debug,\n"+
" 'error': console.error,\n"+
" 'info': console.info,\n"+
" 'warn': console.warn\n"+
" };\n"+
" for (var k in oldLogs) {\n"+
" (function(oldLog) {\n"+
" console[oldLog] = function() {\n"+
" var message = ''\n"+
" for (var i in arguments) {\n"+
" if (message == '') {\n"+
" message += arguments[i];\n"+
" }\n"+
" else {\n"+
" message += ' ' + arguments[i];\n"+
" }\n"+
" }\n"+
" oldLogs[oldLog].call(console, message);\n"+
" }\n"+
" })(k);\n"+
" }\n"+
"})();";
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
......
...@@ -5,7 +5,7 @@ buildscript { ...@@ -5,7 +5,7 @@ buildscript {
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:3.1.4' classpath 'com.android.tools.build:gradle:3.2.0'
} }
} }
......
#Fri Jun 23 08:50:38 CEST 2017 #Fri Oct 05 14:08:48 CEST 2018
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
...@@ -12,7 +12,19 @@ class MyInAppBrowser extends InAppBrowser { ...@@ -12,7 +12,19 @@ class MyInAppBrowser extends InAppBrowser {
@override @override
Future onLoadStop(String url) async { Future onLoadStop(String url) async {
print("\n\nStopped $url\n\n"); print("\n\nStopped $url\n\n");
// // javascript error
// await this.injectScriptCode("console.log({'testJavaScriptError': 5}));");
//
// await this.injectScriptCode("console.log({'testObject': 5});");
// await this.injectScriptCode("console.warn('testWarn',null);");
// await this.injectScriptCode("console.log('testObjectStringify', JSON.stringify({'asd': 5}));");
// await this.injectScriptCode("console.info('testInfo', 6);");
// await this.injectScriptCode("console.error('testError', false);");
// await this.injectScriptCode("console.debug('testDebug', true);");
// print(await this.injectScriptCode("document.body.innerHTML")); // print(await this.injectScriptCode("document.body.innerHTML"));
// print(await this.injectScriptCode("null"));
// print(await this.injectScriptCode("undefined"));
// print(await this.injectScriptCode("3")); // print(await this.injectScriptCode("3"));
// print(await this.injectScriptCode(""" // print(await this.injectScriptCode("""
// function asd (a,b) { // function asd (a,b) {
...@@ -58,6 +70,17 @@ class MyInAppBrowser extends InAppBrowser { ...@@ -58,6 +70,17 @@ class MyInAppBrowser extends InAppBrowser {
print("\n\n override $url\n\n"); print("\n\n override $url\n\n");
this.loadUrl(url); this.loadUrl(url);
} }
@override
void onConsoleMessage(ConsoleMessage consoleMessage) {
print("""
console output:
sourceURL: ${consoleMessage.sourceURL}
lineNumber: ${consoleMessage.lineNumber}
message: ${consoleMessage.message}
messageLevel: ${consoleMessage.messageLevel}
""");
}
} }
MyInAppBrowser inAppBrowserFallback = new MyInAppBrowser(); MyInAppBrowser inAppBrowserFallback = new MyInAppBrowser();
...@@ -107,15 +130,15 @@ class _MyAppState extends State<MyApp> { ...@@ -107,15 +130,15 @@ class _MyAppState extends State<MyApp> {
), ),
body: new Center( body: new Center(
child: new RaisedButton(onPressed: () { child: new RaisedButton(onPressed: () {
chromeSafariBrowser.open("https://flutter.io/"); //chromeSafariBrowser.open("https://flutter.io/");
// inAppBrowserFallback.open("https://flutter.io/", options: { inAppBrowserFallback.open("https://flutter.io/", options: {
// //"hidden": true, //"hidden": true,
// //"toolbarTopFixedTitle": "Fixed title", //"toolbarTopFixedTitle": "Fixed title",
// //"useShouldOverrideUrlLoading": true //"useShouldOverrideUrlLoading": true
// //"hideUrlBar": true, //"hideUrlBar": true,
// //"toolbarTop": false, //"toolbarTop": false,
// //"toolbarBottom": false //"toolbarBottom": false
// }); });
}, },
child: Text("Open InAppBrowser") child: Text("Open InAppBrowser")
......
...@@ -14,6 +14,36 @@ import AVFoundation ...@@ -14,6 +14,36 @@ import AVFoundation
typealias OlderClosureType = @convention(c) (Any, Selector, UnsafeRawPointer, Bool, Bool, Any?) -> Void typealias OlderClosureType = @convention(c) (Any, Selector, UnsafeRawPointer, Bool, Bool, Any?) -> Void
typealias NewerClosureType = @convention(c) (Any, Selector, UnsafeRawPointer, Bool, Bool, Bool, Any?) -> Void typealias NewerClosureType = @convention(c) (Any, Selector, UnsafeRawPointer, Bool, Bool, Bool, Any?) -> Void
// the message needs to be concatenated with '' in order to have the same behavior like on Android
let jsConsoleLog = """
(function() {
var oldLogs = {
'consoleLog': console.log,
'consoleDebug': console.debug,
'consoleError': console.error,
'consoleInfo': console.info,
'consoleWarn': console.warn
};
for (var k in oldLogs) {
(function(oldLog) {
console[oldLog.replace('console', '').toLowerCase()] = function() {
var message = '';
for (var i in arguments) {
if (message == '') {
message += arguments[i];
}
else {
message += ' ' + arguments[i];
}
}
window.webkit.messageHandlers[oldLog].postMessage(message);
}
})(k);
}
})();
"""
extension WKWebView{ extension WKWebView{
var keyboardDisplayRequiresUserAction: Bool? { var keyboardDisplayRequiresUserAction: Bool? {
...@@ -62,7 +92,7 @@ extension WKWebView{ ...@@ -62,7 +92,7 @@ extension WKWebView{
} }
class InAppBrowserWebViewController: UIViewController, WKUIDelegate, WKNavigationDelegate, UITextFieldDelegate { class InAppBrowserWebViewController: UIViewController, WKUIDelegate, WKNavigationDelegate, UITextFieldDelegate, WKScriptMessageHandler {
@IBOutlet var webView: WKWebView! @IBOutlet var webView: WKWebView!
@IBOutlet var closeButton: UIButton! @IBOutlet var closeButton: UIButton!
@IBOutlet var reloadButton: UIBarButtonItem! @IBOutlet var reloadButton: UIBarButtonItem!
...@@ -132,7 +162,6 @@ class InAppBrowserWebViewController: UIViewController, WKUIDelegate, WKNavigatio ...@@ -132,7 +162,6 @@ class InAppBrowserWebViewController: UIViewController, WKUIDelegate, WKNavigatio
} }
func prepareWebView() { func prepareWebView() {
//UIApplication.shared.statusBarStyle = preferredStatusBarStyle //UIApplication.shared.statusBarStyle = preferredStatusBarStyle
self.webView.configuration.userContentController = WKUserContentController() self.webView.configuration.userContentController = WKUserContentController()
...@@ -208,6 +237,13 @@ class InAppBrowserWebViewController: UIViewController, WKUIDelegate, WKNavigatio ...@@ -208,6 +237,13 @@ class InAppBrowserWebViewController: UIViewController, WKUIDelegate, WKNavigatio
let jscriptWebkitTouchCallout = WKUserScript(source: "document.body.style.webkitTouchCallout='none';", injectionTime: .atDocumentEnd, forMainFrameOnly: true) let jscriptWebkitTouchCallout = WKUserScript(source: "document.body.style.webkitTouchCallout='none';", injectionTime: .atDocumentEnd, forMainFrameOnly: true)
self.webView.configuration.userContentController.addUserScript(jscriptWebkitTouchCallout) self.webView.configuration.userContentController.addUserScript(jscriptWebkitTouchCallout)
let jsConsoleLogScript = WKUserScript(source: jsConsoleLog, injectionTime: .atDocumentEnd, forMainFrameOnly: true)
self.webView.configuration.userContentController.addUserScript(jsConsoleLogScript)
self.webView.configuration.userContentController.add(self, name: "consoleLog")
self.webView.configuration.userContentController.add(self, name: "consoleDebug")
self.webView.configuration.userContentController.add(self, name: "consoleError")
self.webView.configuration.userContentController.add(self, name: "consoleInfo")
self.webView.configuration.userContentController.add(self, name: "consoleWarn")
if #available(iOS 10.0, *) { if #available(iOS 10.0, *) {
if (browserOptions?.mediaPlaybackRequiresUserGesture)! { if (browserOptions?.mediaPlaybackRequiresUserGesture)! {
...@@ -481,6 +517,10 @@ class InAppBrowserWebViewController: UIViewController, WKUIDelegate, WKNavigatio ...@@ -481,6 +517,10 @@ class InAppBrowserWebViewController: UIViewController, WKUIDelegate, WKNavigatio
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
// update url, stop spinner, update back/forward // update url, stop spinner, update back/forward
// evaluate the console log script
webView.evaluateJavaScript(jsConsoleLog)
currentURL = webView.url currentURL = webView.url
updateUrlTextField(url: (currentURL?.absoluteString)!) updateUrlTextField(url: (currentURL?.absoluteString)!)
backButton.isEnabled = webView.canGoBack backButton.isEnabled = webView.canGoBack
...@@ -506,4 +546,34 @@ class InAppBrowserWebViewController: UIViewController, WKUIDelegate, WKNavigatio ...@@ -506,4 +546,34 @@ class InAppBrowserWebViewController: UIViewController, WKUIDelegate, WKNavigatio
spinner.stopAnimating() spinner.stopAnimating()
navigationDelegate?.onLoadError(uuid: self.uuid, webView: webView, error: error) navigationDelegate?.onLoadError(uuid: self.uuid, webView: webView, error: error)
} }
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
print(message.name)
if message.name.starts(with: "console") {
var messageLevel = "LOG"
switch (message.name) {
case "consoleLog":
messageLevel = "LOG"
break;
case "consoleDebug":
// on Android, console.debug is TIP
messageLevel = "TIP"
break;
case "consoleError":
messageLevel = "ERROR"
break;
case "consoleInfo":
// on Android, console.info is LOG
messageLevel = "LOG"
break;
case "consoleWarn":
messageLevel = "WARNING"
break;
default:
messageLevel = "LOG"
break;
}
navigationDelegate?.onConsoleMessage(uuid: self.uuid, sourceURL: "", lineNumber: 1, message: message.body as! String, messageLevel: messageLevel)
}
}
} }
...@@ -48,98 +48,98 @@ public class SwiftFlutterPlugin: NSObject, FlutterPlugin { ...@@ -48,98 +48,98 @@ public class SwiftFlutterPlugin: NSObject, FlutterPlugin {
let uuid: String = (arguments!["uuid"] as? String)! let uuid: String = (arguments!["uuid"] as? String)!
switch call.method { switch call.method {
case "open": case "open":
self.open(uuid: uuid, arguments: arguments!, result: result) self.open(uuid: uuid, arguments: arguments!, result: result)
break break
case "loadUrl": case "loadUrl":
self.loadUrl(uuid: uuid, arguments: arguments!, result: result) self.loadUrl(uuid: uuid, arguments: arguments!, result: result)
break break
case "close": case "close":
self.close(uuid: uuid) self.close(uuid: uuid)
result(true) result(true)
break break
case "show": case "show":
self.show(uuid: uuid) self.show(uuid: uuid)
result(true) result(true)
break break
case "hide": case "hide":
self.hide(uuid: uuid) self.hide(uuid: uuid)
result(true) result(true)
break break
case "reload": case "reload":
if let webViewController = self.webViewControllers[uuid] { if let webViewController = self.webViewControllers[uuid] {
webViewController?.reload() webViewController?.reload()
} }
result(true) result(true)
break break
case "goBack": case "goBack":
if let webViewController = self.webViewControllers[uuid] { if let webViewController = self.webViewControllers[uuid] {
webViewController?.goBack() webViewController?.goBack()
} }
result(true) result(true)
break break
case "canGoBack": case "canGoBack":
if let webViewController = self.webViewControllers[uuid] { if let webViewController = self.webViewControllers[uuid] {
result(webViewController?.canGoBack() ?? false) result(webViewController?.canGoBack() ?? false)
} }
else { else {
result(false) result(false)
} }
break break
case "goForward": case "goForward":
if let webViewController = self.webViewControllers[uuid] { if let webViewController = self.webViewControllers[uuid] {
webViewController?.goForward() webViewController?.goForward()
} }
result(true) result(true)
break break
case "canGoForward": case "canGoForward":
if let webViewController = self.webViewControllers[uuid] { if let webViewController = self.webViewControllers[uuid] {
result(webViewController?.canGoForward() ?? false) result(webViewController?.canGoForward() ?? false)
} }
else { else {
result(false) result(false)
} }
break break
case "isLoading": case "isLoading":
if let webViewController = self.webViewControllers[uuid] { if let webViewController = self.webViewControllers[uuid] {
result((webViewController?.webView.isLoading ?? false) == true) result((webViewController?.webView.isLoading ?? false) == true)
} }
else { else {
result(false) result(false)
} }
break break
case "stopLoading": case "stopLoading":
if let webViewController = self.webViewControllers[uuid] { if let webViewController = self.webViewControllers[uuid] {
webViewController?.webView.stopLoading() webViewController?.webView.stopLoading()
} }
result(true) result(true)
break break
case "isHidden": case "isHidden":
if let webViewController = self.webViewControllers[uuid] { if let webViewController = self.webViewControllers[uuid] {
result((webViewController?.isHidden ?? false) == true) result((webViewController?.isHidden ?? false) == true)
} }
else { else {
result(false) result(false)
} }
break break
case "injectScriptCode": case "injectScriptCode":
self.injectScriptCode(uuid: uuid, arguments: arguments!, result: result) self.injectScriptCode(uuid: uuid, arguments: arguments!, result: result)
break break
case "injectScriptFile": case "injectScriptFile":
self.injectScriptFile(uuid: uuid, arguments: arguments!, result: nil) self.injectScriptFile(uuid: uuid, arguments: arguments!, result: nil)
result(true) result(true)
break break
case "injectStyleCode": case "injectStyleCode":
self.injectStyleCode(uuid: uuid, arguments: arguments!, result: nil) self.injectStyleCode(uuid: uuid, arguments: arguments!, result: nil)
result(true) result(true)
break break
case "injectStyleFile": case "injectStyleFile":
self.injectStyleFile(uuid: uuid, arguments: arguments!, result: nil) self.injectStyleFile(uuid: uuid, arguments: arguments!, result: nil)
result(true) result(true)
break break
default: default:
result(FlutterMethodNotImplemented) result(FlutterMethodNotImplemented)
break break
} }
} }
...@@ -410,6 +410,16 @@ public class SwiftFlutterPlugin: NSObject, FlutterPlugin { ...@@ -410,6 +410,16 @@ public class SwiftFlutterPlugin: NSObject, FlutterPlugin {
return return
} }
if error != nil {
let userInfo = (error! as NSError).userInfo
self.onConsoleMessage(uuid: uuid, sourceURL: (userInfo["WKJavaScriptExceptionSourceURL"] as! URL).absoluteString, lineNumber: userInfo["WKJavaScriptExceptionLineNumber"] as! Int, message: userInfo["WKJavaScriptExceptionMessage"] as! String, messageLevel: "ERROR")
}
if value == nil {
result!("")
return
}
do { do {
let data: Data = ("[" + String(describing: value!) + "]").data(using: String.Encoding.utf8, allowLossyConversion: false)! let data: Data = ("[" + String(describing: value!) + "]").data(using: String.Encoding.utf8, allowLossyConversion: false)!
let json: Array<Any> = try JSONSerialization.jsonObject(with: data, options: []) as! Array<Any> let json: Array<Any> = try JSONSerialization.jsonObject(with: data, options: []) as! Array<Any>
...@@ -476,19 +486,25 @@ public class SwiftFlutterPlugin: NSObject, FlutterPlugin { ...@@ -476,19 +486,25 @@ public class SwiftFlutterPlugin: NSObject, FlutterPlugin {
} }
func shouldOverrideUrlLoading(uuid: String, webView: WKWebView, url: URL) { func shouldOverrideUrlLoading(uuid: String, webView: WKWebView, url: URL) {
if let webViewController = self.webViewControllers[uuid] { if self.webViewControllers[uuid] != nil {
channel.invokeMethod("shouldOverrideUrlLoading", arguments: ["uuid": uuid, "url": url.absoluteString]) channel.invokeMethod("shouldOverrideUrlLoading", arguments: ["uuid": uuid, "url": url.absoluteString])
} }
} }
func onConsoleMessage(uuid: String, sourceURL: String, lineNumber: Int, message: String, messageLevel: String) {
if self.webViewControllers[uuid] != nil {
channel.invokeMethod("onConsoleMessage", arguments: ["uuid": uuid, "sourceURL": sourceURL, "lineNumber": lineNumber, "message": message, "messageLevel": messageLevel])
}
}
func onChromeSafariBrowserOpened(uuid: String) { func onChromeSafariBrowserOpened(uuid: String) {
if let safariViewController = self.safariViewControllers[uuid] { if self.safariViewControllers[uuid] != nil {
channel.invokeMethod("onChromeSafariBrowserOpened", arguments: ["uuid": uuid]) channel.invokeMethod("onChromeSafariBrowserOpened", arguments: ["uuid": uuid])
} }
} }
func onChromeSafariBrowserLoaded(uuid: String) { func onChromeSafariBrowserLoaded(uuid: String) {
if let safariViewController = self.safariViewControllers[uuid] { if self.safariViewControllers[uuid] != nil {
channel.invokeMethod("onChromeSafariBrowserLoaded", arguments: ["uuid": uuid]) channel.invokeMethod("onChromeSafariBrowserLoaded", arguments: ["uuid": uuid])
} }
} }
......
...@@ -27,7 +27,26 @@ import 'package:uuid/uuid.dart'; ...@@ -27,7 +27,26 @@ import 'package:uuid/uuid.dart';
typedef Future<dynamic> ListenerCallback(MethodCall call); typedef Future<dynamic> ListenerCallback(MethodCall call);
var uuidGenerator = new Uuid(); var _uuidGenerator = new Uuid();
///
enum ConsoleMessageLevel {
DEBUG, ERROR, LOG, TIP, WARNING
}
///Public class representing a JavaScript console message from WebCore.
///This could be a issued by a call to one of the console logging functions (e.g. console.log('...')) or a JavaScript error on the page.
///
///To receive notifications of these messages, override the [InAppBrowser.onConsoleMessage()] function.
class ConsoleMessage {
String sourceURL = "";
int lineNumber = 1;
String message = "";
ConsoleMessageLevel messageLevel = ConsoleMessageLevel.LOG;
ConsoleMessage(this.sourceURL, this.lineNumber, this.message, this.messageLevel);
}
class _ChannelManager { class _ChannelManager {
static const MethodChannel channel = const MethodChannel('com.pichillilorenzo/flutter_inappbrowser'); static const MethodChannel channel = const MethodChannel('com.pichillilorenzo/flutter_inappbrowser');
...@@ -53,14 +72,14 @@ class _ChannelManager { ...@@ -53,14 +72,14 @@ class _ChannelManager {
///InAppBrowser class. ///InAppBrowser class.
/// ///
/// This class uses the native WebView of the platform. ///This class uses the native WebView of the platform.
class InAppBrowser { class InAppBrowser {
String uuid; String uuid;
/// ///
InAppBrowser () { InAppBrowser () {
uuid = uuidGenerator.v4(); uuid = _uuidGenerator.v4();
_ChannelManager.addListener(uuid, _handleMethod); _ChannelManager.addListener(uuid, _handleMethod);
} }
...@@ -87,6 +106,19 @@ class InAppBrowser { ...@@ -87,6 +106,19 @@ class InAppBrowser {
String url = call.arguments["url"]; String url = call.arguments["url"];
shouldOverrideUrlLoading(url); shouldOverrideUrlLoading(url);
break; break;
case "onConsoleMessage":
String sourceURL = call.arguments["sourceURL"];
int lineNumber = call.arguments["lineNumber"];
String message = call.arguments["message"];
ConsoleMessageLevel messageLevel;
ConsoleMessageLevel.values.forEach((element) {
if ("ConsoleMessageLevel." + call.arguments["messageLevel"] == element.toString()) {
messageLevel = element;
return;
}
});
onConsoleMessage(ConsoleMessage(sourceURL, lineNumber, message, messageLevel));
break;
} }
return new Future.value(""); return new Future.value("");
} }
...@@ -291,6 +323,11 @@ class InAppBrowser { ...@@ -291,6 +323,11 @@ class InAppBrowser {
} }
///Event fires when the [InAppBrowser] webview receives a [ConsoleMessage].
void onConsoleMessage(ConsoleMessage consoleMessage) {
}
} }
///ChromeSafariBrowser class. ///ChromeSafariBrowser class.
...@@ -305,7 +342,7 @@ class ChromeSafariBrowser { ...@@ -305,7 +342,7 @@ class ChromeSafariBrowser {
///Initialize the [ChromeSafariBrowser] instance with a [InAppBrowser] fallback instance or `null`. ///Initialize the [ChromeSafariBrowser] instance with a [InAppBrowser] fallback instance or `null`.
ChromeSafariBrowser (bf) { ChromeSafariBrowser (bf) {
uuid = uuidGenerator.v4(); uuid = _uuidGenerator.v4();
browserFallback = bf; browserFallback = bf;
_ChannelManager.addListener(uuid, _handleMethod); _ChannelManager.addListener(uuid, _handleMethod);
} }
......
name: flutter_inappbrowser name: flutter_inappbrowser
description: A Flutter plugin that allows you to open an in-app browser window. (inspired by the popular cordova-plugin-inappbrowser). description: A Flutter plugin that allows you to open an in-app browser window. (inspired by the popular cordova-plugin-inappbrowser).
version: 0.2.0 version: 0.2.1
author: Lorenzo Pichilli <pichillilorenzo@gmail.com> author: Lorenzo Pichilli <pichillilorenzo@gmail.com>
homepage: https://github.com/pichillilorenzo/flutter_inappbrowser homepage: https://github.com/pichillilorenzo/flutter_inappbrowser
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment