获取android webview中每个页面的url地址

时间:2012-05-22 07:48:46

标签: android webview

您好我是Android新手,我正在做一个Web应用程序,这里我有一个webview我想获取每个页面的url地址,以便我使用webview.getUrl();我得到该页面的地址,但我没有得到其他页面的网址,现在找到网址如何在Android中找到每个页面的地址,如果有必要,我可以发布我的代码。

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;
}
}

我使用页面完成方法它只加载下一页的第一页的地址后没有显示

1 个答案:

答案 0 :(得分:0)

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);
            }

        });

试试吧..希望这会对你有帮助..