diff options
Diffstat (limited to 'StoneIsland/plugins/cordova-plugin-customurlscheme')
13 files changed, 339 insertions, 1264 deletions
diff --git a/StoneIsland/plugins/cordova-plugin-customurlscheme/LaunchMyApp-PhoneGap-Plugin.iws b/StoneIsland/plugins/cordova-plugin-customurlscheme/LaunchMyApp-PhoneGap-Plugin.iws deleted file mode 100644 index 9879f7f4..00000000 --- a/StoneIsland/plugins/cordova-plugin-customurlscheme/LaunchMyApp-PhoneGap-Plugin.iws +++ /dev/null @@ -1,1242 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="ChangeListManager"> - <list default="true" id="96110866-69f3-4eb0-8539-5f26f68fe1ac" name="Default" comment="" /> - <ignored path="LaunchMyApp-PhoneGap-Plugin.iws" /> - <ignored path=".idea/workspace.xml" /> - <ignored path="$PROJECT_DIR$/out/" /> - <ignored path=".idea/dataSources.local.xml" /> - <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> - <option name="TRACKING_ENABLED" value="true" /> - <option name="SHOW_DIALOG" value="false" /> - <option name="HIGHLIGHT_CONFLICTS" value="true" /> - <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> - <option name="LAST_RESOLUTION" value="IGNORE" /> - </component> - <component name="ChangesViewManager" flattened_view="true" show_ignored="false" /> - <component name="CreatePatchCommitExecutor"> - <option name="PATCH_PATH" value="" /> - </component> - <component name="DaemonCodeAnalyzer"> - <disable_hints /> - </component> - <component name="DebuggerManager"> - <breakpoint_any default_suspend_policy="SuspendAll" default_condition_enabled="true" converted="true"> - <breakpoint> - <option name="NOTIFY_CAUGHT" value="true" /> - <option name="NOTIFY_UNCAUGHT" value="true" /> - <option name="ENABLED" value="false" /> - <option name="LOG_ENABLED" value="false" /> - <option name="LOG_EXPRESSION_ENABLED" value="false" /> - <option name="REMOVE_AFTER_HIT" value="false" /> - <option name="SUSPEND_POLICY" value="SuspendAll" /> - <option name="SUSPEND" value="true" /> - <option name="COUNT_FILTER_ENABLED" value="false" /> - <option name="COUNT_FILTER" value="0" /> - <option name="CONDITION_ENABLED" value="true" /> - <option name="CLASS_FILTERS_ENABLED" value="false" /> - <option name="INSTANCE_FILTERS_ENABLED" value="false" /> - <option name="CONDITION" value="" /> - <option name="LOG_MESSAGE" value="" /> - </breakpoint> - <breakpoint> - <option name="NOTIFY_CAUGHT" value="true" /> - <option name="NOTIFY_UNCAUGHT" value="true" /> - <option name="ENABLED" value="false" /> - <option name="LOG_ENABLED" value="false" /> - <option name="LOG_EXPRESSION_ENABLED" value="false" /> - <option name="REMOVE_AFTER_HIT" value="false" /> - <option name="SUSPEND_POLICY" value="SuspendAll" /> - <option name="SUSPEND" value="true" /> - <option name="COUNT_FILTER_ENABLED" value="false" /> - <option name="COUNT_FILTER" value="0" /> - <option name="CONDITION_ENABLED" value="true" /> - <option name="CLASS_FILTERS_ENABLED" value="false" /> - <option name="INSTANCE_FILTERS_ENABLED" value="false" /> - <option name="CONDITION" value="" /> - <option name="LOG_MESSAGE" value="" /> - </breakpoint> - </breakpoint_any> - <breakpoint_rules converted="true" /> - <ui_properties converted="true" /> - </component> - <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" /> - <component name="FavoritesManager"> - <favorites_list name="LaunchMyApp-PhoneGap-Plugin" /> - </component> - <component name="FileEditorManager"> - <leaf> - <file leaf-file-name="package.json" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/package.json"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="-5.625" vertical-offset="0" max-vertical-offset="720"> - <caret line="9" column="17" selection-start-line="9" selection-start-column="17" selection-end-line="9" selection-end-column="17" /> - <folding /> - </state> - </provider> - </entry> - </file> - <file leaf-file-name="plugin.xml" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/plugin.xml"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1695"> - <caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" /> - <folding /> - </state> - </provider> - </entry> - </file> - <file leaf-file-name="README.md" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/README.md"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="-2.0" vertical-offset="0" max-vertical-offset="3105"> - <caret line="4" column="24" selection-start-line="4" selection-start-column="24" selection-end-line="4" selection-end-column="24" /> - <folding /> - </state> - </provider> - <provider editor-type-id="MarkdownPreviewEditor"> - <state /> - </provider> - </entry> - </file> - <file leaf-file-name="LaunchMyApp.java" pinned="false" current-in-tab="true"> - <entry file="file://$PROJECT_DIR$/src/android/nl/xservices/plugins/LaunchMyApp.java"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.13907285" vertical-offset="60" max-vertical-offset="1920"> - <caret line="22" column="43" selection-start-line="22" selection-start-column="43" selection-end-line="22" selection-end-column="43" /> - <folding /> - </state> - </provider> - </entry> - </file> - </leaf> - </component> - <component name="FindManager"> - <FindUsagesManager> - <setting name="OPEN_NEW_TAB" value="false" /> - </FindUsagesManager> - </component> - <component name="Git.Settings"> - <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> - </component> - <component name="GitLogSettings"> - <option name="myDateState"> - <MyDateState /> - </option> - </component> - <component name="IdeDocumentHistory"> - <option name="CHANGED_PATHS"> - <list> - <option value="$PROJECT_DIR$/www/android/LaunchMyApp.js" /> - <option value="$PROJECT_DIR$/plugin.xml" /> - <option value="$PROJECT_DIR$/README.md" /> - <option value="$PROJECT_DIR$/package.json" /> - <option value="$PROJECT_DIR$/src/android/nl/xservices/plugins/LaunchMyApp.java" /> - </list> - </option> - </component> - <component name="JsGulpfileManager"> - <detection-done>true</detection-done> - </component> - <component name="PhpWorkspaceProjectConfiguration" backward_compatibility_performed="true" /> - <component name="ProjectFrameBounds"> - <option name="x" value="587" /> - <option name="y" value="23" /> - <option name="width" value="1095" /> - <option name="height" value="926" /> - </component> - <component name="ProjectLevelVcsManager" settingsEditedManually="false"> - <OptionsSetting value="true" id="Add" /> - <OptionsSetting value="true" id="Remove" /> - <OptionsSetting value="true" id="Checkout" /> - <OptionsSetting value="false" id="Update" /> - <OptionsSetting value="true" id="Status" /> - <OptionsSetting value="true" id="Edit" /> - <OptionsSetting value="true" id="Undo Check Out" /> - <OptionsSetting value="true" id="Get Latest Version" /> - <ConfirmationsSetting value="1" id="Add" /> - <ConfirmationsSetting value="0" id="Remove" /> - </component> - <component name="ProjectView"> - <navigator currentView="ProjectPane" proportions="" version="1"> - <flattenPackages /> - <showMembers /> - <showModules /> - <showLibraryContents /> - <hideEmptyPackages /> - <abbreviatePackageNames /> - <autoscrollToSource /> - <autoscrollFromSource /> - <sortByType /> - </navigator> - <panes> - <pane id="ProjectPane"> - <subPane> - <PATH> - <PATH_ELEMENT> - <option name="myItemId" value="LaunchMyApp-PhoneGap-Plugin" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> - </PATH_ELEMENT> - </PATH> - <PATH> - <PATH_ELEMENT> - <option name="myItemId" value="LaunchMyApp-PhoneGap-Plugin" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> - </PATH_ELEMENT> - <PATH_ELEMENT> - <option name="myItemId" value="LaunchMyApp-PhoneGap-Plugin" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> - </PATH_ELEMENT> - </PATH> - <PATH> - <PATH_ELEMENT> - <option name="myItemId" value="LaunchMyApp-PhoneGap-Plugin" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> - </PATH_ELEMENT> - <PATH_ELEMENT> - <option name="myItemId" value="LaunchMyApp-PhoneGap-Plugin" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> - </PATH_ELEMENT> - <PATH_ELEMENT> - <option name="myItemId" value="www" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> - </PATH_ELEMENT> - <PATH_ELEMENT> - <option name="myItemId" value="windows" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> - </PATH_ELEMENT> - </PATH> - <PATH> - <PATH_ELEMENT> - <option name="myItemId" value="LaunchMyApp-PhoneGap-Plugin" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> - </PATH_ELEMENT> - <PATH_ELEMENT> - <option name="myItemId" value="LaunchMyApp-PhoneGap-Plugin" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> - </PATH_ELEMENT> - <PATH_ELEMENT> - <option name="myItemId" value="www" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> - </PATH_ELEMENT> - </PATH> - <PATH> - <PATH_ELEMENT> - <option name="myItemId" value="LaunchMyApp-PhoneGap-Plugin" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> - </PATH_ELEMENT> - <PATH_ELEMENT> - <option name="myItemId" value="LaunchMyApp-PhoneGap-Plugin" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> - </PATH_ELEMENT> - <PATH_ELEMENT> - <option name="myItemId" value="www" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> - </PATH_ELEMENT> - <PATH_ELEMENT> - <option name="myItemId" value="android" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> - </PATH_ELEMENT> - </PATH> - <PATH> - <PATH_ELEMENT> - <option name="myItemId" value="LaunchMyApp-PhoneGap-Plugin" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> - </PATH_ELEMENT> - <PATH_ELEMENT> - <option name="myItemId" value="LaunchMyApp-PhoneGap-Plugin" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> - </PATH_ELEMENT> - <PATH_ELEMENT> - <option name="myItemId" value="src" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> - </PATH_ELEMENT> - <PATH_ELEMENT> - <option name="myItemId" value="android" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> - </PATH_ELEMENT> - <PATH_ELEMENT> - <option name="myItemId" value="nl" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> - </PATH_ELEMENT> - <PATH_ELEMENT> - <option name="myItemId" value="xservices" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> - </PATH_ELEMENT> - <PATH_ELEMENT> - <option name="myItemId" value="plugins" /> - <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> - </PATH_ELEMENT> - </PATH> - </subPane> - </pane> - <pane id="Scope" /> - <pane id="PackagesPane" /> - </panes> - </component> - <component name="PropertiesComponent"> - <property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth0" value="64" /> - <property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth1" value="72" /> - <property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth0" value="90" /> - <property name="MemberChooser.sorted" value="false" /> - <property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder1" value="1" /> - <property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder0" value="0" /> - <property name="last_opened_file_path" value="$PROJECT_DIR$/LaunchMyApp-PhoneGap-Plugin.ipr" /> - <property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth2" value="75" /> - <property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth3" value="749" /> - <property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth3" value="812" /> - <property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth2" value="94" /> - <property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth1" value="90" /> - <property name="GoToClass.toSaveIncludeLibraries" value="false" /> - <property name="WebServerToolWindowFactoryState" value="true" /> - <property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder2" value="2" /> - <property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder3" value="3" /> - <property name="MemberChooser.showClasses" value="true" /> - <property name="FullScreen" value="false" /> - <property name="GoToClass.includeLibraries" value="false" /> - <property name="GoToFile.includeJavaFiles" value="false" /> - <property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder0" value="0" /> - <property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder3" value="3" /> - <property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder1" value="1" /> - <property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder2" value="2" /> - <property name="MemberChooser.copyJavadoc" value="false" /> - </component> - <component name="RecentsManager"> - <key name="CopyFile.RECENT_KEYS"> - <recent name="$PROJECT_DIR$" /> - <recent name="$PROJECT_DIR$/www/ios" /> - <recent name="$PROJECT_DIR$/www/android" /> - <recent name="$PROJECT_DIR$/www" /> - </key> - <key name="MoveFile.RECENT_KEYS"> - <recent name="$PROJECT_DIR$/www/android" /> - <recent name="$PROJECT_DIR$/www" /> - </key> - </component> - <component name="RunManager"> - <configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin"> - <module name="" /> - <option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m" /> - <option name="PROGRAM_PARAMETERS" /> - <method /> - </configuration> - <configuration default="true" type="GrailsRunConfigurationType" factoryName="Grails"> - <module name="" /> - <setting name="vmparams" value="" /> - <setting name="cmdLine" value="run-app" /> - <setting name="depsClasspath" value="false" /> - <setting name="passParentEnv" value="true" /> - <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> - <setting name="launchBrowser" value="false" /> - <method /> - </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" /> - <method /> - </configuration> - <configuration default="true" type="PhpLocalRunConfigurationType" factoryName="PHP Console"> - <method /> - </configuration> - <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug"> - <method /> - </configuration> - <configuration default="true" type="Applet" factoryName="Applet"> - <module name="" /> - <option name="MAIN_CLASS_NAME" /> - <option name="HTML_FILE_NAME" /> - <option name="HTML_USED" value="false" /> - <option name="WIDTH" value="400" /> - <option name="HEIGHT" value="300" /> - <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" /> - <option name="VM_PARAMETERS" /> - <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> - <option name="ALTERNATIVE_JRE_PATH" /> - <method /> - </configuration> - <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" /> - <option name="SUITE_NAME" /> - <option name="PACKAGE_NAME" /> - <option name="MAIN_CLASS_NAME" /> - <option name="METHOD_NAME" /> - <option name="GROUP_NAME" /> - <option name="TEST_OBJECT" value="CLASS" /> - <option name="VM_PARAMETERS" value="-ea" /> - <option name="PARAMETERS" /> - <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> - <option name="OUTPUT_DIRECTORY" /> - <option name="ANNOTATION_TYPE" /> - <option name="ENV_VARIABLES" /> - <option name="PASS_PARENT_ENVS" value="true" /> - <option name="TEST_SEARCH_SCOPE"> - <value defaultName="moduleWithDependencies" /> - </option> - <option name="USE_DEFAULT_REPORTERS" value="false" /> - <option name="PROPERTIES_FILE" /> - <envs /> - <properties /> - <listeners /> - <method /> - </configuration> - <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js"> - <node-options /> - <gulpfile /> - <tasks /> - <pass-parent-envs>true</pass-parent-envs> - <envs /> - <method /> - </configuration> - <configuration default="true" type="PhpUnitRemoteRunConfigurationType" factoryName="PHPUnit on Server"> - <method /> - </configuration> - <configuration default="true" type="JUnit" factoryName="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" /> - <option name="PACKAGE_NAME" /> - <option name="MAIN_CLASS_NAME" /> - <option name="METHOD_NAME" /> - <option name="TEST_OBJECT" value="class" /> - <option name="VM_PARAMETERS" value="-ea" /> - <option name="PARAMETERS" /> - <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> - <option name="ENV_VARIABLES" /> - <option name="PASS_PARENT_ENVS" value="true" /> - <option name="TEST_SEARCH_SCOPE"> - <value defaultName="moduleWithDependencies" /> - </option> - <envs /> - <patterns /> - <method /> - </configuration> - <configuration default="true" type="FlashRunConfigurationType" factoryName="Flash App"> - <option name="BCName" value="" /> - <option name="IOSSimulatorSdkPath" value="" /> - <option name="adlOptions" value="" /> - <option name="airProgramParameters" value="" /> - <option name="appDescriptorForEmulator" value="Android" /> - <option name="debugTransport" value="USB" /> - <option name="debuggerSdkRaw" value="BC SDK" /> - <option name="emulator" value="NexusOne" /> - <option name="emulatorAdlOptions" value="" /> - <option name="fastPackaging" value="true" /> - <option name="fullScreenHeight" value="0" /> - <option name="fullScreenWidth" value="0" /> - <option name="launchUrl" value="false" /> - <option name="launcherParameters"> - <LauncherParameters> - <option name="browser" value="a7bb68e0-33c0-4d6f-a81a-aac1fdb870c8" /> - <option name="launcherType" value="OSDefault" /> - <option name="newPlayerInstance" value="false" /> - <option name="playerPath" value="/Applications/Flash Player Debugger.app" /> - </LauncherParameters> - </option> - <option name="mobileRunTarget" value="Emulator" /> - <option name="moduleName" value="" /> - <option name="overriddenMainClass" value="" /> - <option name="overriddenOutputFileName" value="" /> - <option name="overrideMainClass" value="false" /> - <option name="runTrusted" value="true" /> - <option name="screenDpi" value="0" /> - <option name="screenHeight" value="0" /> - <option name="screenWidth" value="0" /> - <option name="url" value="http://" /> - <option name="usbDebugPort" value="7936" /> - <method /> - </configuration> - <configuration default="true" type="PHPUnitRunConfigurationType" factoryName="PHPUnit"> - <TestRunner /> - <method /> - </configuration> - <configuration default="true" type="AndroidTestRunConfigurationType" factoryName="Android Tests"> - <module name="" /> - <option name="TESTING_TYPE" value="0" /> - <option name="INSTRUMENTATION_RUNNER_CLASS" value="" /> - <option name="METHOD_NAME" value="" /> - <option name="CLASS_NAME" value="" /> - <option name="PACKAGE_NAME" value="" /> - <option name="TARGET_SELECTION_MODE" value="EMULATOR" /> - <option name="USE_LAST_SELECTED_DEVICE" value="false" /> - <option name="PREFERRED_AVD" value="" /> - <option name="USE_COMMAND_LINE" value="true" /> - <option name="COMMAND_LINE" value="" /> - <option name="WIPE_USER_DATA" value="false" /> - <option name="DISABLE_BOOT_ANIMATION" value="false" /> - <option name="NETWORK_SPEED" value="full" /> - <option name="NETWORK_LATENCY" value="none" /> - <option name="CLEAR_LOGCAT" value="false" /> - <option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" /> - <option name="FILTER_LOGCAT_AUTOMATICALLY" value="true" /> - <method /> - </configuration> - <configuration default="true" type="BashConfigurationType" factoryName="Bash"> - <option name="INTERPRETER_OPTIONS" value="" /> - <option name="INTERPRETER_PATH" value="/bin/bash" /> - <option name="WORKING_DIRECTORY" value="" /> - <option name="PARENT_ENVS" value="true" /> - <option name="SCRIPT_NAME" value="" /> - <option name="PARAMETERS" value="" /> - <module name="" /> - <envs /> - <method /> - </configuration> - <configuration default="true" type="JarApplication" factoryName="JAR Application"> - <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> - <envs /> - <method /> - </configuration> - <configuration default="true" type="GradleRunConfiguration" factoryName="Gradle"> - <ExternalSystemSettings> - <option name="executionName" /> - <option name="externalProjectPath" /> - <option name="externalSystemIdString" value="GRADLE" /> - <option name="scriptParameters" /> - <option name="taskDescriptions"> - <list /> - </option> - <option name="taskNames"> - <list /> - </option> - <option name="vmOptions" /> - </ExternalSystemSettings> - <method /> - </configuration> - <configuration default="true" type="FlexUnitRunConfigurationType" factoryName="FlexUnit" appDescriptorForEmulator="Android" class_name="" emulatorAdlOptions="" method_name="" package_name="" scope="Class"> - <option name="BCName" value="" /> - <option name="launcherParameters"> - <LauncherParameters> - <option name="browser" value="a7bb68e0-33c0-4d6f-a81a-aac1fdb870c8" /> - <option name="launcherType" value="OSDefault" /> - <option name="newPlayerInstance" value="false" /> - <option name="playerPath" value="/Applications/Flash Player Debugger.app" /> - </LauncherParameters> - </option> - <option name="moduleName" value="" /> - <option name="trusted" value="true" /> - <method /> - </configuration> - <configuration default="true" type="CucumberJavaRunConfigurationType" factoryName="Cucumber java"> - <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> - <option name="myFilePath" /> - <option name="GLUE" /> - <option name="myNameFilter" /> - <option name="myGeneratedName" /> - <option name="MAIN_CLASS_NAME" /> - <option name="VM_PARAMETERS" /> - <option name="PROGRAM_PARAMETERS" /> - <option name="WORKING_DIRECTORY" /> - <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 /> - <method /> - </configuration> - <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="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 /> - <method /> - </configuration> - <configuration default="true" type="AndroidRunConfigurationType" factoryName="Android Application"> - <module name="" /> - <option name="ACTIVITY_CLASS" value="" /> - <option name="MODE" value="default_activity" /> - <option name="DEPLOY" value="true" /> - <option name="ARTIFACT_NAME" value="" /> - <option name="TARGET_SELECTION_MODE" value="EMULATOR" /> - <option name="USE_LAST_SELECTED_DEVICE" value="false" /> - <option name="PREFERRED_AVD" value="" /> - <option name="USE_COMMAND_LINE" value="true" /> - <option name="COMMAND_LINE" value="" /> - <option name="WIPE_USER_DATA" value="false" /> - <option name="DISABLE_BOOT_ANIMATION" value="false" /> - <option name="NETWORK_SPEED" value="full" /> - <option name="NETWORK_LATENCY" value="none" /> - <option name="CLEAR_LOGCAT" value="false" /> - <option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" /> - <option name="FILTER_LOGCAT_AUTOMATICALLY" value="true" /> - <method /> - </configuration> - <list size="0" /> - <configuration name="<template>" type="WebApp" default="true" selected="false"> - <Host>localhost</Host> - <Port>5050</Port> - </configuration> - </component> - <component name="ShelveChangesManager" show_recycled="false" /> - <component name="SvnConfiguration" myUseAcceleration="nothing"> - <configuration /> - </component> - <component name="TaskManager"> - <task active="true" id="Default" summary="Default task"> - <changelist id="96110866-69f3-4eb0-8539-5f26f68fe1ac" name="Default" comment="" /> - <created>1380298653954</created> - <option name="number" value="Default" /> - <updated>1380298653954</updated> - <workItem from="1390857442497" duration="680000" /> - <workItem from="1391027761184" duration="538000" /> - <workItem from="1402047801442" duration="226000" /> - <workItem from="1417632415028" duration="123000" /> - <workItem from="1417702903217" duration="1164000" /> - <workItem from="1417732337674" duration="68000" /> - <workItem from="1432718035482" duration="300000" /> - <workItem from="1434477283713" duration="33000" /> - <workItem from="1434530183600" duration="166000" /> - <workItem from="1434576966771" duration="61000" /> - <workItem from="1435160289082" duration="779000" /> - <workItem from="1437822576701" duration="751000" /> - <workItem from="1440661703645" duration="1158000" /> - </task> - <task id="LOCAL-00001" summary="initial checkin"> - <created>1380299229689</created> - <option name="number" value="00001" /> - <option name="project" value="LOCAL" /> - <updated>1380299229689</updated> - </task> - <task id="LOCAL-00002" summary="initial checkin"> - <created>1380302935690</created> - <option name="number" value="00002" /> - <option name="project" value="LOCAL" /> - <updated>1380302935690</updated> - </task> - <task id="LOCAL-00003" summary="testing scheme"> - <created>1380305538088</created> - <option name="number" value="00003" /> - <option name="project" value="LOCAL" /> - <updated>1380305538088</updated> - </task> - <task id="LOCAL-00004" summary="testing scheme"> - <created>1380305862564</created> - <option name="number" value="00004" /> - <option name="project" value="LOCAL" /> - <updated>1380305862564</updated> - </task> - <task id="LOCAL-00005" summary="testing scheme"> - <created>1380306489891</created> - <option name="number" value="00005" /> - <option name="project" value="LOCAL" /> - <updated>1380306489891</updated> - </task> - <task id="LOCAL-00006" summary="testing scheme"> - <created>1380307532008</created> - <option name="number" value="00006" /> - <option name="project" value="LOCAL" /> - <updated>1380307532008</updated> - </task> - <task id="LOCAL-00007" summary="testing scheme"> - <created>1380307669209</created> - <option name="number" value="00007" /> - <option name="project" value="LOCAL" /> - <updated>1380307669209</updated> - </task> - <task id="LOCAL-00008" summary="testing scheme"> - <created>1380311306948</created> - <option name="number" value="00008" /> - <option name="project" value="LOCAL" /> - <updated>1380311306949</updated> - </task> - <task id="LOCAL-00009" summary="testing scheme"> - <created>1380311921427</created> - <option name="number" value="00009" /> - <option name="project" value="LOCAL" /> - <updated>1380311921427</updated> - </task> - <task id="LOCAL-00010" summary="Android w.i.p."> - <created>1380317008739</created> - <option name="number" value="00010" /> - <option name="project" value="LOCAL" /> - <updated>1380317008739</updated> - </task> - <task id="LOCAL-00011" summary="Android w.i.p."> - <created>1380317829887</created> - <option name="number" value="00011" /> - <option name="project" value="LOCAL" /> - <updated>1380317829888</updated> - </task> - <task id="LOCAL-00012" summary="Android w.i.p."> - <created>1380353871771</created> - <option name="number" value="00012" /> - <option name="project" value="LOCAL" /> - <updated>1380353871771</updated> - </task> - <task id="LOCAL-00013" summary="testing schemes"> - <created>1380358237732</created> - <option name="number" value="00013" /> - <option name="project" value="LOCAL" /> - <updated>1380358237732</updated> - </task> - <task id="LOCAL-00014" summary="testing schemes"> - <created>1380358605885</created> - <option name="number" value="00014" /> - <option name="project" value="LOCAL" /> - <updated>1380358605885</updated> - </task> - <task id="LOCAL-00015" summary="testing schemes"> - <created>1380376149014</created> - <option name="number" value="00015" /> - <option name="project" value="LOCAL" /> - <updated>1380376149014</updated> - </task> - <task id="LOCAL-00016" summary="testing schemes"> - <created>1380378153190</created> - <option name="number" value="00016" /> - <option name="project" value="LOCAL" /> - <updated>1380378153205</updated> - </task> - <task id="LOCAL-00017" summary="cleanup"> - <created>1380383948466</created> - <option name="number" value="00017" /> - <option name="project" value="LOCAL" /> - <updated>1380383948466</updated> - </task> - <task id="LOCAL-00018" summary="docs"> - <created>1380393159906</created> - <option name="number" value="00018" /> - <option name="project" value="LOCAL" /> - <updated>1380393159906</updated> - </task> - <task id="LOCAL-00019" summary="docs"> - <created>1380393508799</created> - <option name="number" value="00019" /> - <option name="project" value="LOCAL" /> - <updated>1380393508799</updated> - </task> - <task id="LOCAL-00020" summary="docs"> - <created>1380393757355</created> - <option name="number" value="00020" /> - <option name="project" value="LOCAL" /> - <updated>1380393757355</updated> - </task> - <task id="LOCAL-00021" summary="docs"> - <created>1380393772924</created> - <option name="number" value="00021" /> - <option name="project" value="LOCAL" /> - <updated>1380393772924</updated> - </task> - <task id="LOCAL-00022" summary="docs"> - <created>1380402190419</created> - <option name="number" value="00022" /> - <option name="project" value="LOCAL" /> - <updated>1380402190419</updated> - </task> - <task id="LOCAL-00023" summary="docs"> - <created>1380402398063</created> - <option name="number" value="00023" /> - <option name="project" value="LOCAL" /> - <updated>1380402398063</updated> - </task> - <task id="LOCAL-00024" summary="docs"> - <created>1380402815702</created> - <option name="number" value="00024" /> - <option name="project" value="LOCAL" /> - <updated>1380402815702</updated> - </task> - <task id="LOCAL-00025" summary="found a way to pass a custom urlscheme when the plugin is added"> - <created>1380488689110</created> - <option name="number" value="00025" /> - <option name="project" value="LOCAL" /> - <updated>1380488689110</updated> - </task> - <task id="LOCAL-00026" summary="docs"> - <created>1380488797067</created> - <option name="number" value="00026" /> - <option name="project" value="LOCAL" /> - <updated>1380488797067</updated> - </task> - <task id="LOCAL-00027" summary="docs"> - <created>1380488875151</created> - <option name="number" value="00027" /> - <option name="project" value="LOCAL" /> - <updated>1380488875151</updated> - </task> - <task id="LOCAL-00028" summary="docs"> - <created>1380489049263</created> - <option name="number" value="00028" /> - <option name="project" value="LOCAL" /> - <updated>1380489049263</updated> - </task> - <task id="LOCAL-00029" summary="- docs - version++"> - <created>1380489820453</created> - <option name="number" value="00029" /> - <option name="project" value="LOCAL" /> - <updated>1380489820453</updated> - </task> - <task id="LOCAL-00030" summary="Implemented feedback by Adobe (plugin should indeed work if no JS handler. Thx guys!)."> - <created>1380567506465</created> - <option name="number" value="00030" /> - <option name="project" value="LOCAL" /> - <updated>1380567506465</updated> - </task> - <task id="LOCAL-00031" summary="Implemented feedback by Adobe (plugin should indeed work if no JS handler. Thx guys!)."> - <created>1380567576964</created> - <option name="number" value="00031" /> - <option name="project" value="LOCAL" /> - <updated>1380567576964</updated> - </task> - <task id="LOCAL-00032" summary="Implemented feedback by Adobe (plugin should indeed work if no JS handler. Thx guys!)."> - <created>1380567665822</created> - <option name="number" value="00032" /> - <option name="project" value="LOCAL" /> - <updated>1380567665822</updated> - </task> - <task id="LOCAL-00033" summary="Upgrading to PhoneGap 3.x"> - <created>1383169425770</created> - <option name="number" value="00033" /> - <option name="project" value="LOCAL" /> - <updated>1383169425770</updated> - </task> - <task id="LOCAL-00034" summary="Upgrading to PhoneGap 3.x (DroidGap is gone)"> - <created>1383172326587</created> - <option name="number" value="00034" /> - <option name="project" value="LOCAL" /> - <updated>1383172326587</updated> - </task> - <task id="LOCAL-00035" summary="Upgrading to PhoneGap 3.x (DroidGap is gone)"> - <created>1383174045796</created> - <option name="number" value="00035" /> - <option name="project" value="LOCAL" /> - <updated>1383174045796</updated> - </task> - <task id="LOCAL-00036" summary="- Check intent when the app is resumed - Plugin rename: launchMyApp --> Custom URL Scheme"> - <created>1390857761557</created> - <option name="number" value="00036" /> - <option name="project" value="LOCAL" /> - <updated>1390857761557</updated> - </task> - <task id="LOCAL-00037" summary="- Check intent when the app is resumed - Plugin rename: launchMyApp --> Custom URL Scheme "> - <created>1390857936690</created> - <option name="number" value="00037" /> - <option name="project" value="LOCAL" /> - <updated>1390857936690</updated> - </task> - <task id="LOCAL-00038" summary="Hotfix for silly clobbers comment f*$%#p"> - <created>1391028041914</created> - <option name="number" value="00038" /> - <option name="project" value="LOCAL" /> - <updated>1391028041914</updated> - </task> - <task id="LOCAL-00039" summary="[#13] cleaned up some now obsolete workarounds for singleTask mode, thanks a lot https://github.com/cef62 !"> - <created>1402048017666</created> - <option name="number" value="00039" /> - <option name="project" value="LOCAL" /> - <updated>1402048017666</updated> - </task> - <task id="LOCAL-00040" summary="Hardening against XSS attacks, thanks Neil Bergman (nbergman@cigital.com)!"> - <created>1417632494865</created> - <option name="number" value="00040" /> - <option name="project" value="LOCAL" /> - <updated>1417632494865</updated> - </task> - <task id="LOCAL-00041" summary="#55 #2 Less aggressive cleanup of the intent"> - <created>1417703047123</created> - <option name="number" value="00041" /> - <option name="project" value="LOCAL" /> - <updated>1417703047123</updated> - </task> - <task id="LOCAL-00042" summary="#55 #2 Less aggressive cleanup of the intent"> - <created>1417706007258</created> - <option name="number" value="00042" /> - <option name="project" value="LOCAL" /> - <updated>1417706007258</updated> - </task> - <task id="LOCAL-00043" summary="Possible fix for #65"> - <created>1434477311221</created> - <option name="number" value="00043" /> - <option name="project" value="LOCAL" /> - <updated>1434477311221</updated> - </task> - <task id="LOCAL-00044" summary="Definite fix for #65"> - <created>1434530307503</created> - <option name="number" value="00044" /> - <option name="project" value="LOCAL" /> - <updated>1434530307503</updated> - </task> - <task id="LOCAL-00045" summary="More definite fix for #65"> - <created>1434577022103</created> - <option name="number" value="00045" /> - <option name="project" value="LOCAL" /> - <updated>1434577022103</updated> - </task> - <task id="LOCAL-00046" summary="Even more definite fix for #65, now also compatible with launching your app from another app (which frankly... doesn't pass a category=browsable)"> - <created>1435161053225</created> - <option name="number" value="00046" /> - <option name="project" value="LOCAL" /> - <updated>1435161053225</updated> - </task> - <task id="LOCAL-00047" summary="#95 Make plugin available on npm"> - <created>1440664137793</created> - <option name="number" value="00047" /> - <option name="project" value="LOCAL" /> - <updated>1440664137793</updated> - </task> - <task id="LOCAL-00048" summary="#90 Attempted to send a second callback for ID: LaunchMyApp Result was: "Invalid action""> - <created>1440664585797</created> - <option name="number" value="00048" /> - <option name="project" value="LOCAL" /> - <updated>1440664585797</updated> - </task> - <option name="localTasksCounter" value="49" /> - <servers /> - </component> - <component name="TimeTrackingManager"> - <option name="totallyTimeSpent" value="6047000" /> - </component> - <component name="ToolWindowManager"> - <frame x="587" y="23" width="1095" height="926" extended-state="0" /> - <editor active="true" /> - <layout> - <window_info id="Palette	" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> - <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> - <window_info id="Changes" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32763532" sideWeight="0.6703807" order="1" side_tool="false" content_ui="tabs" /> - <window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> - <window_info id="Atlassian " active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> - <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> - <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> - <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> - <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" /> - <window_info id="Remote Host" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> - <window_info id="IDEtalk Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> - <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="true" content_ui="tabs" /> - <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" /> - <window_info id="IDEtalk" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> - <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32439336" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> - <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" /> - <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" /> - <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> - <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> - <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> - <window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> - <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24121557" sideWeight="0.67006487" order="0" side_tool="false" content_ui="combo" /> - <window_info id="CDI" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> - <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> - <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="9" side_tool="false" content_ui="combo" /> - <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" /> - <window_info id="JetGradle" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> - <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> - <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> - <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> - <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" /> - </layout> - <layout-to-restore> - <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> - <window_info id="Palette	" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> - <window_info id="Changes" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32763532" sideWeight="0.6703807" order="2" side_tool="false" content_ui="tabs" /> - <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" /> - <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> - <window_info id="Remote Host" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> - <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="true" content_ui="tabs" /> - <window_info id="IDEtalk Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> - <window_info id="IDEtalk" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> - <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32439336" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> - <window_info id="CDI" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> - <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="13" side_tool="false" content_ui="tabs" /> - <window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> - <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24121557" sideWeight="0.67006487" order="1" side_tool="false" content_ui="combo" /> - <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" /> - <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="11" side_tool="false" content_ui="combo" /> - <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" /> - <window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> - <window_info id="JetGradle" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> - <window_info id="Atlassian " active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> - <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> - <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> - <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> - <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> - <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" /> - <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="4" side_tool="true" content_ui="tabs" /> - <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" /> - <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> - <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" /> - <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" /> - <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="12" side_tool="false" content_ui="tabs" /> - </layout-to-restore> - </component> - <component name="Vcs.Log.UiProperties"> - <option name="RECENTLY_FILTERED_USER_GROUPS"> - <collection /> - </option> - <option name="RECENTLY_FILTERED_BRANCH_GROUPS"> - <collection /> - </option> - </component> - <component name="VcsContentAnnotationSettings"> - <option name="myLimit" value="2678400000" /> - </component> - <component name="VcsManagerConfiguration"> - <option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="false" /> - <option name="CHECK_NEW_TODO" value="false" /> - <option name="myTodoPanelSettings"> - <TodoPanelSettings /> - </option> - <MESSAGE value="initial checkin" /> - <MESSAGE value="testing scheme" /> - <MESSAGE value="Android w.i.p." /> - <MESSAGE value="testing schemes" /> - <MESSAGE value="cleanup" /> - <MESSAGE value="found a way to pass a custom urlscheme when the plugin is added" /> - <MESSAGE value="docs" /> - <MESSAGE value="- docs - version++" /> - <MESSAGE value="Implemented feedback by Adobe (plugin should indeed work if no JS handler. Thx guys!)." /> - <MESSAGE value="Upgrading to PhoneGap 3.x" /> - <MESSAGE value="Upgrading to PhoneGap 3.x (DroidGap is gone)" /> - <MESSAGE value="- Check intent when the app is resumed - Plugin rename: launchMyApp --> Custom URL Scheme" /> - <MESSAGE value="- Check intent when the app is resumed - Plugin rename: launchMyApp --> Custom URL Scheme " /> - <MESSAGE value="Hotfix for silly clobbers comment f*$%#p" /> - <MESSAGE value="[#13] cleaned up some now obsolete workarounds for singleTask mode, thanks a lot https://github.com/cef62 !" /> - <MESSAGE value="Hardening against XSS attacks, thanks Neil Bergman (nbergman@cigital.com)!" /> - <MESSAGE value="#55 #2 Less aggressive cleanup of the intent" /> - <MESSAGE value="Possible fix for #65" /> - <MESSAGE value="Definite fix for #65" /> - <MESSAGE value="More definite fix for #65" /> - <MESSAGE value="Even more definite fix for #65, now also compatible with launching your app from another app (which frankly... doesn't pass a category=browsable)" /> - <MESSAGE value="#95 Make plugin available on npm" /> - <MESSAGE value="#90 Attempted to send a second callback for ID: LaunchMyApp Result was: "Invalid action"" /> - <option name="LAST_COMMIT_MESSAGE" value="#90 Attempted to send a second callback for ID: LaunchMyApp Result was: "Invalid action"" /> - </component> - <component name="XDebuggerManager"> - <breakpoint-manager> - <option name="time" value="1" /> - </breakpoint-manager> - <watches-manager /> - </component> - <component name="antWorkspaceConfiguration"> - <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" /> - <option name="FILTER_TARGETS" value="false" /> - </component> - <component name="atlassian-ide-plugin-workspace"> - <option name="bambooConfiguration"> - <BambooWorkspaceConfiguration> - <option name="view"> - <BambooViewConfigurationBean /> - </option> - </BambooWorkspaceConfiguration> - </option> - <option name="defaultCredentials"> - <UserCfgBean /> - </option> - </component> - <component name="atlassian-ide-plugin-workspace-issues"> - <option name="view"> - <JiraViewConfigurationBean> - <option name="viewFilterId" value="" /> - </JiraViewConfigurationBean> - </option> - </component> - <component name="editorHistoryManager"> - <entry file="file://$PROJECT_DIR$/www/android/LaunchMyApp.js"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="450"> - <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/plugin.xml"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0" vertical-offset="285" max-vertical-offset="1035"> - <caret line="19" column="12" selection-start-line="19" selection-start-column="12" selection-end-line="19" selection-end-column="12" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/www/android/LaunchMyApp.js"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0" vertical-offset="225" max-vertical-offset="315"> - <caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/plugin.xml"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="0"> - <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/plugin.xml"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="0"> - <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/www/android/LaunchMyApp.js"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="0"> - <caret line="8" column="22" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/src/android/nl/xservices/plugins/LaunchMyApp.java"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="0"> - <caret line="19" column="16" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/plugin.xml"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="0"> - <caret line="28" column="14" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/www/android/LaunchMyApp.js"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="0"> - <caret line="6" column="25" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/src/android/nl/xservices/plugins/LaunchMyApp.java"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="0"> - <caret line="26" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/www/android/LaunchMyApp.js"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="0"> - <caret line="8" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/plugin.xml"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="0"> - <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/src/android/nl/xservices/plugins/LaunchMyApp.java"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="0"> - <caret line="26" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/www/android/LaunchMyApp.js"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="0"> - <caret line="8" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/plugin.xml"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="0"> - <caret line="38" column="18" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/src/android/nl/xservices/plugins/LaunchMyApp.java"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="0"> - <caret line="26" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/plugin.xml"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="0"> - <caret line="16" column="16" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/.gitignore"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.014299333" vertical-offset="0" max-vertical-offset="0"> - <caret line="1" column="5" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/../mgggplus/mgggplus-frontend/www/config.xml"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="0"> - <caret line="12" column="23" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/www/ios/LaunchMyApp.js"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="743"> - <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/www/android/LaunchMyApp.js"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="450"> - <caret line="18" column="22" selection-start-line="18" selection-start-column="22" selection-end-line="18" selection-end-column="22" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/www/windows/LaunchMyApp.js"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.1986755" vertical-offset="0" max-vertical-offset="755"> - <caret line="10" column="0" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/README.md"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="-2.0" vertical-offset="0" max-vertical-offset="3105"> - <caret line="4" column="24" selection-start-line="4" selection-start-column="24" selection-end-line="4" selection-end-column="24" /> - <folding /> - </state> - </provider> - <provider editor-type-id="MarkdownPreviewEditor"> - <state /> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/package.json"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="-5.625" vertical-offset="0" max-vertical-offset="720"> - <caret line="9" column="17" selection-start-line="9" selection-start-column="17" selection-end-line="9" selection-end-column="17" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/plugin.xml"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1695"> - <caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" /> - <folding /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/src/android/nl/xservices/plugins/LaunchMyApp.java"> - <provider selected="true" editor-type-id="text-editor"> - <state vertical-scroll-proportion="0.13907285" vertical-offset="60" max-vertical-offset="1920"> - <caret line="22" column="43" selection-start-line="22" selection-start-column="43" selection-end-line="22" selection-end-column="43" /> - <folding /> - </state> - </provider> - </entry> - </component> -</project>
\ No newline at end of file diff --git a/StoneIsland/plugins/cordova-plugin-customurlscheme/README.md b/StoneIsland/plugins/cordova-plugin-customurlscheme/README.md index 2de829c2..d7222e90 100644 --- a/StoneIsland/plugins/cordova-plugin-customurlscheme/README.md +++ b/StoneIsland/plugins/cordova-plugin-customurlscheme/README.md @@ -1,6 +1,6 @@ # Custom URL scheme PhoneGap Plugin #### launch your app by a link like this: `mycoolapp://` -for iOS and Android, by [Eddy Verbruggen](http://www.x-services.nl) +for iOS, Android and WP, by [Eddy Verbruggen](http://www.x-services.nl) - This repo is for PhoneGap 3.0.0 and up - For PhoneGap 2.9.0 and lower, [switch to the phonegap-2.9.0-and-lower branch](https://github.com/EddyVerbruggen/LaunchMyApp-PhoneGap-Plugin/tree/phonegap-2.9.0-and-lower) @@ -10,11 +10,15 @@ for iOS and Android, by [Eddy Verbruggen](http://www.x-services.nl) 2. [Manually](https://github.com/EddyVerbruggen/LaunchMyApp-PhoneGap-Plugin#manually) 2. [PhoneGap Build](https://github.com/EddyVerbruggen/LaunchMyApp-PhoneGap-Plugin#phonegap-build) 3. [Usage](https://github.com/EddyVerbruggen/LaunchMyApp-PhoneGap-Plugin#3-usage) + 2. [iOS](https://github.com/EddyVerbruggen/LaunchMyApp-PhoneGap-Plugin#ios-usage) + 2. [Meteor](https://github.com/EddyVerbruggen/Custom-URL-scheme#meteor--getlastintent-android-only) 4. [URL Scheme hints](https://github.com/EddyVerbruggen/LaunchMyApp-PhoneGap-Plugin#4-url-scheme-hints) 5. [License](https://github.com/EddyVerbruggen/LaunchMyApp-PhoneGap-Plugin#5-license) -### BEWARE: [This Apache Cordova issue](https://issues.apache.org/jira/browse/CB-7606) causes problems with Cordova-iOS 3.7.0: the `handleOpenURL` function is not invoked upon cold start. Use a higher or lower version than 3.7.0. +### BEWARE: +### - [This Apache Cordova issue](https://issues.apache.org/jira/browse/CB-7606) causes problems with Cordova-iOS 3.7.0: the `handleOpenURL` function is not invoked upon cold start. Use a higher or lower version than 3.7.0. +### - As of iOS 9.2, the dialog `Open in "mycoolapp"?` no longer blocks JS, so if you have a short timeout that opens the app store, the user will be taken to the store before they have a chance to see and answer the dialog. [See below](https://github.com/EddyVerbruggen/LaunchMyApp-PhoneGap-Plugin#ios-usage) for available solutions. ## 1. Description @@ -32,6 +36,8 @@ This plugin allows you to start your app by calling it with a URL like `mycoolap ### Android specifics * Unlike iOS, there is no way to use config.xml to define a scheme for your app. Now there is. * Tested on Android 4.3, will most likely work with 2.2 and up. +* If you're trying to launch your app from an In-App Browser it opened previously, then [use this In-App Browser plugin fork](https://github.com/Innovation-District/cordova-plugin-inappbrowser) which allows that. +* In case you have a multi-page app (multiple HTML files, and all implementing handleOpenURL), set the preference `CustomURLSchemePluginClearsAndroidIntent` to `true` in `config.xml` so the function won't be triggered multiple times. Note that this may interfere with other plugins requiring the intent data. ## 2. Installation @@ -168,6 +174,37 @@ function handleOpenURL(url) { A more useful implementation would mean parsing the URL, saving any params to sessionStorage and redirecting the app to the correct page inside your app. All this happens before the first page is loaded. +### iOS Usage +A common method of deeplinking is to give the user the URL of a webpage (for instance http://linker.myapp.com/pathfoo) that opens the app if installed or the app store if not. This can be done in the following ways, depending on the desired UX: + +1. The page content has a button that says "Install app" and when clicked opens the app store by doing `location.href = 'itms-apps://itunes.apple.com/us/app/mycoolapp/idfoo'`. On page load, do `location.href = 'mycoolapp://pathfoo'`. If the user has the app, they will see a dialog that says `Open in "mycoolapp"? [Cancel] [Open]`. If the user does not have the app, they will see an alert that says `Cannot Open Page: Safari cannot open the page because the address is invalid`. Once they dismiss the alert, they see the button that opens the app store, and they tap it. +2. The page has two buttons: one that opens the app, and one that opens the app store. +3. On page load, open a Universal Link using [cordova-universal-links-plugin](https://github.com/nordnet/cordova-universal-links-plugin). (A Universal Link either opens the app or the app store.) Then fall back to one of the above methods if Univeral Links is not supported. + +You can also use a service that provides pages that do #3 for you, such as [Branch](https://branch.io/). + +### CSP - or: `handleOpenURL` doesn't work +The Whitelist plugin will prevent inline JS from executing, unless you whitelist the url scheme. Please see [this SO issue](http://stackoverflow.com/questions/34257097/using-handleopenurl-with-custom-url-scheme-in-cordova/34281420#34281420) for details. + +### Meteor / getLastIntent (Android only) +When running a [meteor](meteor.com) app in the cordova environment, `handleOpenURL` doesn't get called after a cold start, because cordova resets the javascript world during startup and our timer waiting for `handleOpenURL` gets vanished (see [#98](https://github.com/EddyVerbruggen/Custom-URL-scheme/issues/98)). To get the intent by which the app was started in a meteor cordova app you need to ask for it from the meteor side with `getLastIntent` like this. +```javascript +Meteor.startup(function() { + if (Meteor.isCordova) { + window.plugins.launchmyapp.getLastIntent(function(url) { + if (intent.indexOf('mycoolapp://' > -1)) { + console.log("received url: " + url); + } else { + return console.log("ignore intent: " + url); + } + }, function(error) { + return console.log("no intent received"); + }); + return; + } +}); +``` + ## 4. URL Scheme hints Please choose a URL_SCHEME which which complies to these restrictions: - Don't use an already registered scheme (like `fb`, `twitter`, `comgooglemaps`, etc). diff --git a/StoneIsland/plugins/cordova-plugin-customurlscheme/atlassian-ide-plugin.xml b/StoneIsland/plugins/cordova-plugin-customurlscheme/atlassian-ide-plugin.xml deleted file mode 100644 index 858eed55..00000000 --- a/StoneIsland/plugins/cordova-plugin-customurlscheme/atlassian-ide-plugin.xml +++ /dev/null @@ -1,5 +0,0 @@ -<atlassian-ide-plugin>
- <project-configuration id="1">
- <servers id="2" />
- </project-configuration>
-</atlassian-ide-plugin>
\ No newline at end of file diff --git a/StoneIsland/plugins/cordova-plugin-customurlscheme/package.json b/StoneIsland/plugins/cordova-plugin-customurlscheme/package.json index de90c8e2..3d0a4eaf 100644 --- a/StoneIsland/plugins/cordova-plugin-customurlscheme/package.json +++ b/StoneIsland/plugins/cordova-plugin-customurlscheme/package.json @@ -1,6 +1,6 @@ { "name": "cordova-plugin-customurlscheme", - "version": "4.0.0", + "version": "4.2.0", "description": "Launch your app by using this URL: mycoolapp://, you can add a path and even pass params like this: mycoolerapp://somepath?foo=bar", "cordova": { "id": "cordova-plugin-customurlscheme", @@ -40,4 +40,4 @@ "url": "https://github.com/EddyVerbruggen/Custom-URL-scheme/issues" }, "homepage": "https://github.com/EddyVerbruggen/Custom-URL-scheme#readme" -}
\ No newline at end of file +} diff --git a/StoneIsland/plugins/cordova-plugin-customurlscheme/plugin.xml b/StoneIsland/plugins/cordova-plugin-customurlscheme/plugin.xml index 1e43e724..0fde67b0 100755 --- a/StoneIsland/plugins/cordova-plugin-customurlscheme/plugin.xml +++ b/StoneIsland/plugins/cordova-plugin-customurlscheme/plugin.xml @@ -2,7 +2,7 @@ <plugin xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android" id="cordova-plugin-customurlscheme" - version="4.0.0"> + version="4.2.0"> <name>Custom URL scheme</name> @@ -47,6 +47,10 @@ <!-- android --> <platform name="android"> + <preference name="ANDROID_SCHEME" default=" " /> + <preference name="ANDROID_HOST" default=" " /> + <preference name="ANDROID_PATHPREFIX" default="/" /> + <js-module src="www/android/LaunchMyApp.js" name="LaunchMyApp"> <clobbers target="window.plugins.launchmyapp" /> </js-module> @@ -59,16 +63,24 @@ <source-file src="src/android/nl/xservices/plugins/LaunchMyApp.java" target-dir="src/nl/xservices/plugins"/> - <config-file target="AndroidManifest.xml" parent="/*/application/activity"> + <config-file target="AndroidManifest.xml" parent="/manifest/application/activity"> <intent-filter> + <action android:name="android.intent.action.VIEW" /> + <category android:name="android.intent.category.DEFAULT" /> + <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="$URL_SCHEME"/> + </intent-filter> + <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> + <data android:scheme="$ANDROID_SCHEME" + android:host="$ANDROID_HOST" + android:pathPrefix="$ANDROID_PATHPREFIX" /> </intent-filter> </config-file> </platform> - + <!-- windows8 --> <platform name="windows8"> <config-file target="package.appxmanifest" parent="/Package/Applications/Application/Extensions"> @@ -76,14 +88,20 @@ <Protocol Name="$URL_SCHEME" /> </Extension> </config-file> - + <js-module src="www/windows/LaunchMyApp.js" name="LaunchMyApp"> <clobbers target="window.plugins.launchmyapp" /> </js-module> </platform> - + <!-- windows --> <platform name="windows"> + <hook type="before_prepare" src="src/windows/hooks/prepare-manifest.js" /> + <config-file target="package.windows10.appxmanifest" parent="/Package/Applications/Application/Extensions"> + <uap:Extension Category="windows.protocol" StartPage="www/index.html"> + <uap:Protocol Name="$URL_SCHEME" /> + </uap:Extension> + </config-file> <config-file target="package.windows.appxmanifest" parent="/Package/Applications/Application/Extensions"> <Extension Category="windows.protocol" StartPage="www/index.html"> <Protocol Name="$URL_SCHEME" /> @@ -104,4 +122,28 @@ </js-module> </platform> + <!-- wp8 --> + <platform name="wp8"> + <config-file target="config.xml" parent="/*"> + <feature name="CustomUriMapperCommand"> + <param name="wp-package" value="CustomUriMapperCommand"/> + <param name="onload" value="true" /> + </feature> + </config-file> + + <config-file target="Properties/WMAppManifest.xml" parent="/Deployment/App" after="Tokens"> + <Extensions> + <Protocol Name="$URL_SCHEME" NavUriFragment="encodedLaunchUri=%s" TaskID="_default" /> + </Extensions> + </config-file> + + <source-file src="src/wp8/CompositeUriMapper.cs" /> + <source-file src="src/wp8/ICustomUriMapper.cs" /> + <source-file src="src/wp8/CustomUriMapperCommand.cs" /> + <js-module src="www/wp8/LaunchMyApp.js" name="LaunchMyApp"> + <clobbers target="window.plugins.launchmyapp" /> + </js-module> + <hook type="after_plugin_install" src="src/wp8/hooks/add-uri-mapper.js" /> + </platform> + </plugin> diff --git a/StoneIsland/plugins/cordova-plugin-customurlscheme/src/android/nl/xservices/plugins/LaunchMyApp.java b/StoneIsland/plugins/cordova-plugin-customurlscheme/src/android/nl/xservices/plugins/LaunchMyApp.java index 9d3f3d63..3a52d287 100644 --- a/StoneIsland/plugins/cordova-plugin-customurlscheme/src/android/nl/xservices/plugins/LaunchMyApp.java +++ b/StoneIsland/plugins/cordova-plugin-customurlscheme/src/android/nl/xservices/plugins/LaunchMyApp.java @@ -4,6 +4,8 @@ import android.content.Intent; import org.apache.cordova.CallbackContext; import org.apache.cordova.CordovaActivity; import org.apache.cordova.CordovaPlugin; +import org.apache.cordova.CordovaInterface; +import org.apache.cordova.CordovaWebView; import org.apache.cordova.PluginResult; import org.json.JSONArray; import org.json.JSONException; @@ -16,19 +18,52 @@ import java.util.Locale; public class LaunchMyApp extends CordovaPlugin { private static final String ACTION_CHECKINTENT = "checkIntent"; + private static final String ACTION_CLEARINTENT = "clearIntent"; + private static final String ACTION_GETLASTINTENT = "getLastIntent"; + + private String lastIntentString = null; + + /** + * We don't want to interfere with other plugins requiring the intent data, + * but in case of a multi-page app your app may receive the same intent data + * multiple times, that's why you'll get an option to reset it (null it). + * + * Add this to config.xml to enable that behaviour (default false): + * <preference name="CustomURLSchemePluginClearsAndroidIntent" value="true"/> + */ + private boolean resetIntent; + + @Override + public void initialize(final CordovaInterface cordova, CordovaWebView webView){ + this.resetIntent = preferences.getBoolean("resetIntent", false) || + preferences.getBoolean("CustomURLSchemePluginClearsAndroidIntent", false); + } @Override public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { - if (ACTION_CHECKINTENT.equalsIgnoreCase(action)) { + if (ACTION_CLEARINTENT.equalsIgnoreCase(action)) { + final Intent intent = ((CordovaActivity) this.webView.getContext()).getIntent(); + if (resetIntent){ + intent.setData(null); + } + return true; + } else if (ACTION_CHECKINTENT.equalsIgnoreCase(action)) { final Intent intent = ((CordovaActivity) this.webView.getContext()).getIntent(); final String intentString = intent.getDataString(); - if (intentString != null && intentString.contains("://") && intent.getScheme() != null) { + if (intentString != null && intent.getScheme() != null) { + lastIntentString = intentString; callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, intent.getDataString())); - intent.setData(null); } else { callbackContext.error("App was not started via the launchmyapp URL scheme. Ignoring this errorcallback is the best approach."); } return true; + } else if (ACTION_GETLASTINTENT.equalsIgnoreCase(action)) { + if(lastIntentString != null) { + callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, lastIntentString)); + } else { + callbackContext.error("No intent received so far."); + } + return true; } else { callbackContext.error("This plugin only responds to the " + ACTION_CHECKINTENT + " action."); return false; @@ -38,8 +73,10 @@ public class LaunchMyApp extends CordovaPlugin { @Override public void onNewIntent(Intent intent) { final String intentString = intent.getDataString(); - if (intentString != null && intentString.contains("://") && intent.getScheme() != null) { - intent.setData(null); + if (intentString != null && intent.getScheme() != null) { + if (resetIntent){ + intent.setData(null); + } try { StringWriter writer = new StringWriter(intentString.length() * 2); escapeJavaStyleString(writer, intentString, true, false); @@ -133,4 +170,4 @@ public class LaunchMyApp extends CordovaPlugin { private static String hex(char ch) { return Integer.toHexString(ch).toUpperCase(Locale.ENGLISH); } -}
\ No newline at end of file +} diff --git a/StoneIsland/plugins/cordova-plugin-customurlscheme/src/windows/hooks/prepare-manifest.js b/StoneIsland/plugins/cordova-plugin-customurlscheme/src/windows/hooks/prepare-manifest.js new file mode 100644 index 00000000..06e237f7 --- /dev/null +++ b/StoneIsland/plugins/cordova-plugin-customurlscheme/src/windows/hooks/prepare-manifest.js @@ -0,0 +1,30 @@ +module.exports = function(context) { + var fs = context.requireCordovaModule('fs'), + et = context.requireCordovaModule('elementtree'), + path = context.requireCordovaModule('path'), + xml= context.requireCordovaModule('cordova-common').xmlHelpers, + projectRoot = path.join(context.opts.projectRoot, "platforms", "windows"); + + var MANIFEST_WINDOWS = 'package.windows.appxmanifest', + MANIFEST_PHONE = 'package.phone.appxmanifest', + MANIFEST_WINDOWS10 = 'package.windows10.appxmanifest', + MANIFEST_WINDOWS80 = 'package.windows80.appxmanifest'; + + function updateManifestFile(manifestPath) { + var doc = xml.parseElementtreeSync(manifestPath); + var root = doc.getroot(); + var app = root.find('./Applications/Application'); + if (!app) { + throw new Error(manifestPath + ' has incorrect XML structure.'); + } + if (!app.find('./Extensions')) { + app.append(new et.Element('Extensions')); + } + fs.writeFileSync(manifestPath, doc.write({indent: 4}), 'utf-8'); + } + + [MANIFEST_PHONE, MANIFEST_WINDOWS80, MANIFEST_WINDOWS, MANIFEST_WINDOWS10] + .forEach(function(manifestFile) { + updateManifestFile(path.join(projectRoot, manifestFile)); + }); +} diff --git a/StoneIsland/plugins/cordova-plugin-customurlscheme/src/wp8/CompositeUriMapper.cs b/StoneIsland/plugins/cordova-plugin-customurlscheme/src/wp8/CompositeUriMapper.cs new file mode 100644 index 00000000..8db593b8 --- /dev/null +++ b/StoneIsland/plugins/cordova-plugin-customurlscheme/src/wp8/CompositeUriMapper.cs @@ -0,0 +1,46 @@ +using System; +using System.Linq; +using System.Windows.Navigation; + +internal class CompositeUriMapper : UriMapperBase +{ + public static string launchUrl; + + public override Uri MapUri(Uri uri) + { + string launchUri = uri.ToString(); + if (launchUri.StartsWith("/Protocol?encodedLaunchUri=")) + { + int launchUrlIndex = launchUri.IndexOf("encodedLaunchUri="); + launchUrl = System.Net.HttpUtility.UrlDecode(launchUri.Substring(launchUrlIndex+17)); + return new Uri("/MainPage.xaml", UriKind.Relative); + } + var assemblies = AppDomain.CurrentDomain.GetAssemblies(); + var types = assemblies.SelectMany(a => + { + try + { + return a.ExportedTypes.Where(et => typeof(ICustomUriMapper).IsAssignableFrom(et)); + } + catch + { + return Enumerable.Empty<Type>(); + } + }); + + foreach (var type in types) + { + if (type != typeof(ICustomUriMapper)) + { + var worker = (ICustomUriMapper)Activator.CreateInstance(type); + var mappedUri = worker.CustomMapUri(uri); + if (mappedUri != null) + { + return mappedUri; + } + } + } + + return uri; + } +}
\ No newline at end of file diff --git a/StoneIsland/plugins/cordova-plugin-customurlscheme/src/wp8/CustomUriMapperCommand.cs b/StoneIsland/plugins/cordova-plugin-customurlscheme/src/wp8/CustomUriMapperCommand.cs new file mode 100644 index 00000000..2004f2ec --- /dev/null +++ b/StoneIsland/plugins/cordova-plugin-customurlscheme/src/wp8/CustomUriMapperCommand.cs @@ -0,0 +1,9 @@ +using System; +using WPCordovaClassLib.Cordova.Commands; + +namespace Cordova.Extension.Commands +{ + public class CustomUriMapperCommand : BaseCommand + { + } +}
\ No newline at end of file diff --git a/StoneIsland/plugins/cordova-plugin-customurlscheme/src/wp8/ICustomUriMapper.cs b/StoneIsland/plugins/cordova-plugin-customurlscheme/src/wp8/ICustomUriMapper.cs new file mode 100644 index 00000000..2cc31e5c --- /dev/null +++ b/StoneIsland/plugins/cordova-plugin-customurlscheme/src/wp8/ICustomUriMapper.cs @@ -0,0 +1,7 @@ +using System; +using System.Linq; + +public interface ICustomUriMapper +{ + Uri CustomMapUri(Uri uri); +} diff --git a/StoneIsland/plugins/cordova-plugin-customurlscheme/src/wp8/hooks/add-uri-mapper.js b/StoneIsland/plugins/cordova-plugin-customurlscheme/src/wp8/hooks/add-uri-mapper.js new file mode 100644 index 00000000..1c1db69c --- /dev/null +++ b/StoneIsland/plugins/cordova-plugin-customurlscheme/src/wp8/hooks/add-uri-mapper.js @@ -0,0 +1,80 @@ +module.exports = function (context) { + var deferred = context.requireCordovaModule('q').defer(), + fs = context.requireCordovaModule('fs'), + path = context.requireCordovaModule('path'), + projectRoot = context.opts.projectRoot; + + // While on AppBuilder this may work, the Cordova CLI doesn't like it + // (or at least not all versions of it). + var appXaml = path.join(projectRoot, "App.xaml.cs"); + var mainPageXaml = path.join(projectRoot, "MainPage.xaml.cs"); + try { + fs.statSync(appXaml); + fs.statSync(mainPageXaml); + } catch (err) { + appXaml = path.join(projectRoot, "platforms", "wp8", "App.xaml.cs"); + mainPageXaml = path.join(projectRoot, "platforms", "wp8", "MainPage.xaml.cs"); + try { + fs.statSync(appXaml); + fs.statSync(mainPageXaml); + } catch (err2) { + console.error("Custom URL Scheme plugin couldn't find your App's xaml file! Try to adjust the file manually according to the 'add-uri-mapper.js' hook."); + return; + } + } + + fs.readFile(appXaml, 'utf8', function (err,data) { + if (err) { + console.error("Error while configuring the Custom URL Scheme: " + err); + deferred.reject(err); + return; + } + + var result = data.replace(/^(\s*?)(RootFrame.NavigationFailed\s*?\+=\s*?RootFrame_NavigationFailed;)/gm, + "$1$2\n\n$1// Assign the URI-mapper class to the application frame\n$1RootFrame.UriMapper = new CompositeUriMapper();"); + + fs.writeFile(appXaml, result, 'utf8', function (err) { + if (err){ + deferred.reject(err); + } else{ + deferred.resolve(); + } + }); + }); + + fs.readFile(mainPageXaml, 'utf8', function (err,data) { + if (err) { + console.error("Error while configuring the Custom URL Scheme: " + err); + deferred.reject(err); + return; + } + + // first add a line to refer to a new method + var result = data.replace(/^(\s*?)(this.CordovaView.Loaded\s*?\+=\s*?CordovaView_Loaded;)/gm, + "$1$2\n\n$1// Wire a handler so we can check for our custom scheme\n$1this.CordovaView.Browser.LoadCompleted += CordovaBrowser_LoadCompleted;"); + + // now add that new method + result = result.replace(/^(\s*?)(\/\/ Constructor)/gm, + "$1void CordovaBrowser_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e) {\n"+ + "$1\tif (CompositeUriMapper.launchUrl != null) {\n" + + "$1\t\tstring handleOpenURL = string.Format(\"(function() {{ document.addEventListener('deviceready', function() {{ if (typeof handleOpenURL === 'function') {{ handleOpenURL(\\\"{0}\\\"); }} }}); }})()\", CompositeUriMapper.launchUrl);\n" + + "$1\t\ttry {\n" + + "$1\t\t\tthis.CordovaView.CordovaBrowser.InvokeScript(\"eval\", new string[] { handleOpenURL });\n" + + "$1\t\t} catch (Exception) {}\n" + + "$1\t\tCompositeUriMapper.launchUrl = null;\n" + + "$1\t}\n" + + "$1\tthis.CordovaView.Browser.LoadCompleted -= CordovaBrowser_LoadCompleted;\n" + + "$1}\n\n" + + "$1$2"); + + fs.writeFile(mainPageXaml, result, 'utf8', function (err) { + if (err){ + deferred.reject(err); + } else{ + deferred.resolve(); + } + }); + }); + + return deferred.promise; +}
\ No newline at end of file diff --git a/StoneIsland/plugins/cordova-plugin-customurlscheme/www/android/LaunchMyApp.js b/StoneIsland/plugins/cordova-plugin-customurlscheme/www/android/LaunchMyApp.js index 19dbdc0b..18fe0112 100644 --- a/StoneIsland/plugins/cordova-plugin-customurlscheme/www/android/LaunchMyApp.js +++ b/StoneIsland/plugins/cordova-plugin-customurlscheme/www/android/LaunchMyApp.js @@ -4,10 +4,18 @@ var remainingAttempts = 10; function waitForAndCallHandlerFunction(url) { - if (typeof window.handleOpenURL == "function") { + if (typeof window.handleOpenURL === "function") { + // Clear the intent when we have a handler (note that this is only done when the preference 'CustomURLSchemePluginClearsAndroidIntent' is 'true' in config.xml + cordova.exec( + null, + null, + "LaunchMyApp", + "clearIntent", + []); + window.handleOpenURL(url); } else if (remainingAttempts-- > 0) { - setTimeout(function(){waitForAndCallHandlerFunction(url)}, 500); + setTimeout(function(){waitForAndCallHandlerFunction(url);}, 500); } } @@ -21,4 +29,18 @@ } document.addEventListener("deviceready", triggerOpenURL, false); + + var launchmyapp = { + getLastIntent: function(success, failure) { + cordova.exec( + success, + failure, + "LaunchMyApp", + "getLastIntent", + []); + } + } + + module.exports = launchmyapp; + }()); diff --git a/StoneIsland/plugins/cordova-plugin-customurlscheme/www/wp8/LaunchMyApp.js b/StoneIsland/plugins/cordova-plugin-customurlscheme/www/wp8/LaunchMyApp.js new file mode 100644 index 00000000..a8172f0f --- /dev/null +++ b/StoneIsland/plugins/cordova-plugin-customurlscheme/www/wp8/LaunchMyApp.js @@ -0,0 +1,12 @@ +(function () { + function activatedHandlerWinUI(e) { + if (typeof handleOpenURL == 'function' && e.uri) { + handleOpenURL(e.uri.rawUri); + } + }; + + if (typeof Windows != 'undefined') { + var wui = Windows.UI.WebUI.WebUIApplication; + wui.addEventListener("activated", activatedHandlerWinUI, false); + } +}());
\ No newline at end of file |
