2012-05-22 28 views
0

嗨,我是新來的Android和我在做一個Web應用程序中的每個頁面的URL地址,在這裏我有一個網頁視圖我想,這樣我使用webview.getUrl(讓每個頁面的URL地址);我得到該網頁的地址,但我沒有得到其他網頁的網址,現在找到網址現在我怎麼能找到每個頁面的地址,如果有必要我可以發佈我的代碼。得到的Android的WebView

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

我使用頁面完成methord只加載第一頁的地址之後,下一個頁面不顯示

+0

你有沒有注意到'shouldOverrideUrlLoading'中的第二個參數'String url'? – Rajesh

回答

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

     }); 

嘗試it..hope的部份將幫助ü..

+0

其工作適用於google.com,但在視頻選爲youtube時無法使用 – user1402738