obtenga la dirección URL en cada página en la vista web de Android

Hola, soy nuevo en Android y estoy haciendo una aplicación web, aquí tengo una vista web. Quiero obtener la dirección URL de cada página para usar webview.getUrl(); y obtengo la dirección de esa página, pero no obtuve la dirección web de las otras páginas, ahora busque la URL ahora, ¿cómo puedo encontrar la dirección de cada página en Android? Si es necesario, puedo publicar mi código.

package com.k.l;

 import java.net.URL;



    public class FregnhjActivity extends Activity implements OnTouchListener, Handler.Callback {

private static final int CLICK_ON_WEBVIEW = 1;
private static final int CLICK_ON_URL = 2;

private final Handler handler = new Handler(this);

private WebView webView;
private WebViewClient client;
Bundle link=new Bundle();
String idyoutube="";
String webUrl="";
String url="http://m.youtube.com/";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

webView = (WebView)findViewById(R.id.web);
webView.setOnTouchListener(this);

client = new WebViewClient(){ 
    @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { 
        handler.sendEmptyMessage(CLICK_ON_URL);

        return false;
    } 



    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        // TODO Auto-generated method stub

         webUrl = webView.getUrl();
        System.out.println("###nasjkxbsa99999999"+webUrl);



        super.onPageStarted(view, url, favicon);


    }
}; 


webView.setWebViewClient(client);
webView.setVerticalScrollBarEnabled(false);
webView.loadUrl(url);

webView.getSettings().setJavaScriptEnabled(true);
}


public boolean onTouch(View v, MotionEvent event) {
if (v.getId() == R.id.web && event.getAction() == MotionEvent.ACTION_DOWN){
    handler.sendEmptyMessageDelayed(CLICK_ON_WEBVIEW, 500);
}
return false;
}


public boolean handleMessage(Message msg) {

if (msg.what == CLICK_ON_URL){
    handler.removeMessages(CLICK_ON_WEBVIEW);


    return true;
}
if (msg.what == CLICK_ON_WEBVIEW){
    Toast.makeText(this, "WebView clicked", Toast.LENGTH_SHORT).show();

    webUrl = webView.getUrl();
    System.out.println("sammmmm"+webUrl);

    int start=webUrl.indexOf('?');
   int end=webUrl.indexOf('v');
   String yutube=webUrl.substring(start-1,end+1);

   int ids=webUrl.indexOf('=');
   idyoutube=webUrl.substring(ids+1);




    return true;
}
return false;
}
}

Uso el método de finalización de la página, solo carga la dirección de la primera página, la siguiente página después de eso no se muestra.

preguntado el 22 de mayo de 12 a las 08:05

¿Te has fijado en el segundo parámetro? String url in shouldOverrideUrlLoading? -

1 Respuestas

WebView webView webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("https://www.google.co.in/");
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient() {
@Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                Log.i("shouldOverrideUrlLoading", url);
                return super.shouldOverrideUrlLoading(view, url);
            }

        });

Pruébalo... espero que esto te ayude...

contestado el 22 de mayo de 12 a las 09:05

funciona para google.com pero no funciona cuando el video se selecciona en youtube - user1402738

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.