diff --git a/framework/src/org/apache/cordova/ConfigXmlParser.java b/framework/src/org/apache/cordova/ConfigXmlParser.java index ae9b57fd1b..17b47b06c4 100644 --- a/framework/src/org/apache/cordova/ConfigXmlParser.java +++ b/framework/src/org/apache/cordova/ConfigXmlParser.java @@ -46,9 +46,14 @@ public ArrayList getPluginEntries() { } public String getLaunchUrl() { - if (launchUrl == null) { + if (launchUrl == null) { launchUrl = "https://" + this.prefs.getString("hostname", "localhost"); } + + if (this.prefs.getBoolean("AndroidInsecureFileModeEnabled", false)) { + launchUrl = "file:///android_asset/www/index.html"; + } + return launchUrl; } @@ -142,7 +147,11 @@ private void setStartUrl(String src) { if (src.charAt(0) == '/') { src = src.substring(1); } - launchUrl = "https://" + this.prefs.getString("hostname", "localhost") + "/" + src; + if (this.prefs.getBoolean("AndroidInsecureFileModeEnabled", false)) { + launchUrl = "file:///android_asset/www/" + src; + } else { + launchUrl = "https://" + this.prefs.getString("hostname", "localhost") + "/" + src; + } } } } diff --git a/framework/src/org/apache/cordova/engine/SystemWebViewEngine.java b/framework/src/org/apache/cordova/engine/SystemWebViewEngine.java index 2921d3d091..ff37f9b6dd 100755 --- a/framework/src/org/apache/cordova/engine/SystemWebViewEngine.java +++ b/framework/src/org/apache/cordova/engine/SystemWebViewEngine.java @@ -159,6 +159,14 @@ private void initWebViewSettings() { settings.setSaveFormData(false); settings.setSavePassword(false); + if (preferences.getBoolean("AndroidInsecureFileModeEnabled", false)) { + //These settings are deprecated and loading content via file:// URLs is generally discouraged, + //but we allow this for compatibility reasons + LOG.d(TAG, "Enabled insecure file access"); + settings.setAllowFileAccess(true); + settings.setAllowUniversalAccessFromFileURLs(true); + } + settings.setMediaPlaybackRequiresUserGesture(false); // Enable database