logré pasar variables de una manera diferente.
Mi problema es que cada vez que cambio a otra aplicación, cuando vengo a la aplicación web, la vista web se vuelve a cargar. Supongo que se debe a la siguiente línea en mi método onCreate()
: myWebView.loadUrl(url);
Tuve la idea de pasar estas variables de estado en la url, pero como saben, aún no es posible. Lo que hice fue guardar el estado de algunas variables usando onSaveInstanceState(Bundle outState) {...}
y restaurarlas con onRestoreInstanceState(Bundle savedInstanceState){...}
.
En el método onCreate después de configurar myWebView hice lo siguiente:
myWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String urlString)
{
Log.i("onPageFinished", "loadVariables("+newURL+")");
if(newURL!="")
myWebView.loadUrl("javascript:loadVariables("+"\""+newURL+"\")");
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
jsInterface = new JSInterface(this,myWebView);
myWebView.addJavascriptInterface(jsInterface, "Android");
if (savedInstanceState != null)
{
// retrieve saved variables and build a new URL
newURL = "www.yoururl.com";
newURL +="?var1=" + savedInstanceState.getInt("key1");
newURL +="?var2=" + savedInstanceState.getInt("key2");
Log.i("myWebApp","NEW URL = " + newURL);
}
myWebView.loadUrl("www.yoururl.com");
Por lo tanto, lo que sucede es que primero me carga la página con la URL predeterminada (www.yoururl.com) y onPageFinished que llamo un nuevo método de javascript donde paso las variables. En Javascript loadVariables
función tiene el siguiente aspecto:
function loadVariables(urlString){
// if it is not the default URL
if(urlString!="www.yoururl.com")
{
console.log("loadVariables: " + urlString);
// parse the URL using a javascript url parser (here I use purl.js)
var source = $.url(urlString).attr('source');
var query = $.url(urlString).attr('query');
console.log("URL SOURCE = "+source + " URL QUERY = "+query);
//do something with the variables
}
}
http://stackoverflow.com/q/11614456/1012284 –