mirror of
https://github.com/apache/cordova-android.git
synced 2025-02-26 20:33:07 +08:00
Fix issue with document.location.href not calling loadUrlIntoView
Now we peek at the history and add the url the stack if loadUrlIntoView is not being called.
This commit is contained in:
parent
900ff9ed2c
commit
363b1429e3
@ -183,9 +183,6 @@ public class CordovaWebViewClient extends WebViewClient {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPageStarted(WebView view, String url, Bitmap favicon) {
|
public void onPageStarted(WebView view, String url, Bitmap favicon) {
|
||||||
Log.d("CordovaWebViewClient", "I got a page started for = " + url);
|
|
||||||
Log.d("CordovaWebViewClient", "can go back " + view.canGoBack());
|
|
||||||
|
|
||||||
// Clear history so history.back() doesn't do anything.
|
// Clear history so history.back() doesn't do anything.
|
||||||
// So we can reinit() native side CallbackServer & PluginManager.
|
// So we can reinit() native side CallbackServer & PluginManager.
|
||||||
view.clearHistory();
|
view.clearHistory();
|
||||||
@ -200,7 +197,6 @@ public class CordovaWebViewClient extends WebViewClient {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void onPageFinished(WebView view, String url) {
|
public void onPageFinished(WebView view, String url) {
|
||||||
Log.d("CordovaWebViewClient", "I got a page finished for = " + url);
|
|
||||||
super.onPageFinished(view, url);
|
super.onPageFinished(view, url);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -296,4 +292,15 @@ public class CordovaWebViewClient extends WebViewClient {
|
|||||||
super.onReceivedSslError(view, handler, error);
|
super.onReceivedSslError(view, handler, error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doUpdateVisitedHistory(WebView view, String url, boolean isReload) {
|
||||||
|
/*
|
||||||
|
* If you do a document.location.href the url does not get pushed on the stack
|
||||||
|
* so we do a check here to see if the url should be pushed.
|
||||||
|
*/
|
||||||
|
if (!this.ctx.peekAtUrlStack().equals(url)) {
|
||||||
|
this.ctx.pushUrl(url);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,8 +33,6 @@ import org.apache.cordova.api.IPlugin;
|
|||||||
import org.apache.cordova.api.LOG;
|
import org.apache.cordova.api.LOG;
|
||||||
import org.apache.cordova.api.CordovaInterface;
|
import org.apache.cordova.api.CordovaInterface;
|
||||||
import org.apache.cordova.api.PluginManager;
|
import org.apache.cordova.api.PluginManager;
|
||||||
import org.json.JSONArray;
|
|
||||||
import org.json.JSONException;
|
|
||||||
import org.xmlpull.v1.XmlPullParserException;
|
import org.xmlpull.v1.XmlPullParserException;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
@ -43,17 +41,12 @@ import android.app.ProgressDialog;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.pm.ApplicationInfo;
|
|
||||||
import android.content.pm.PackageManager;
|
|
||||||
import android.content.pm.PackageManager.NameNotFoundException;
|
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.content.res.XmlResourceParser;
|
import android.content.res.XmlResourceParser;
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.graphics.Bitmap;
|
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.media.AudioManager;
|
import android.media.AudioManager;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.net.http.SslError;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.Display;
|
import android.view.Display;
|
||||||
@ -64,19 +57,10 @@ import android.view.View;
|
|||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
import android.webkit.ConsoleMessage;
|
|
||||||
import android.webkit.GeolocationPermissions.Callback;
|
|
||||||
import android.webkit.HttpAuthHandler;
|
|
||||||
import android.webkit.JsPromptResult;
|
|
||||||
import android.webkit.JsResult;
|
|
||||||
import android.webkit.SslErrorHandler;
|
|
||||||
import android.webkit.WebChromeClient;
|
|
||||||
import android.webkit.WebSettings;
|
import android.webkit.WebSettings;
|
||||||
import android.webkit.WebSettings.LayoutAlgorithm;
|
import android.webkit.WebSettings.LayoutAlgorithm;
|
||||||
import android.webkit.WebStorage;
|
|
||||||
import android.webkit.WebView;
|
import android.webkit.WebView;
|
||||||
import android.webkit.WebViewClient;
|
import android.webkit.WebViewClient;
|
||||||
import android.widget.EditText;
|
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
|
|
||||||
|
|
||||||
@ -229,8 +213,6 @@ public class DroidGap extends Activity implements CordovaInterface {
|
|||||||
// preferences read from cordova.xml
|
// preferences read from cordova.xml
|
||||||
protected PreferenceSet preferences;
|
protected PreferenceSet preferences;
|
||||||
|
|
||||||
private boolean classicRender;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the authentication token.
|
* Sets the authentication token.
|
||||||
*
|
*
|
||||||
@ -1370,7 +1352,31 @@ public class DroidGap extends Activity implements CordovaInterface {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* URL stack manipulators
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the top url on the stack without removing it from
|
||||||
|
* the stack.
|
||||||
|
*/
|
||||||
|
public String peekAtUrlStack() {
|
||||||
|
if (urls.size() > 0) {
|
||||||
|
return urls.peek();
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a url to the stack
|
||||||
|
*
|
||||||
|
* @param url
|
||||||
|
*/
|
||||||
|
public void pushUrl(String url) {
|
||||||
|
urls.push(url);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Hook in DroidGap for menu plugins
|
* Hook in DroidGap for menu plugins
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user