2014-08-29 133 views
-1

我正在使用WebView在Android應用程序中打開網頁。 我所描述的佈局:使用瀏覽器打開網頁的WebView

<?xml version="1.0" encoding="utf-8"?> 
<WebView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/webview" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
/> 

新增許可在Android清單文件:

<uses-permission android:name="android.permission.INTERNET" /> 

而且使用的WebView在我的活動課爲:

WebView theWebPage = new WebView(this); 
setContentView(theWebPage); 
theWebPage.loadUrl("http://www.google.com"); 

已經這樣做了,我在一些Android手機上運行了該應用。開啓後,應用程序要求(Chrome,Mozilla或電話上安裝的任何其他瀏覽器)使用哪個應用程序打開網頁,即「http://www.google.com」。

我想讓應用程序打開它內部的網頁。幫幫我?

+0

看看這裏:http://stackoverflow.com/questions/7746409/android-webview-launches-browser-當通話,使用loadURL – 2014-08-29 14:59:26

回答

1

你的XML是correct.You需要setWebViewClient作爲您的自定義。 這是製作簡單瀏覽器的代碼。也許這會幫助你澄清你的疑惑。

Broweser.java

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.simplebrowser); 

    ourBrow = (WebView)findViewById(R.id.wvBrowser); 
    ourBrow.getSettings().setJavaScriptEnabled(true); 
    ourBrow.getSettings().setLoadWithOverviewMode(true); 
    ourBrow.getSettings().setUseWideViewPort(true); 
    ourBrow.setWebViewClient(new ourViewClient()); 
    ourBrow.getSettings().setBuiltInZoomControls(true); 
    try{ 
    ourBrow.loadUrl("http://www.google.com"); 
    }catch(Exception e){ 
     e.printStackTrace(); 
    } 
    Button go = (Button)findViewById(R.id.bGo); 
    Button back = (Button)findViewById(R.id.bBack); 
    Button refresh = (Button)findViewById(R.id.bRefresh); 
    Button forward = (Button)findViewById(R.id.bForward); 
    Button clearHistory = (Button)findViewById(R.id.bHistory); 
    url = (EditText)findViewById(R.id.etURL); 

    go.setOnClickListener(this); 
    back.setOnClickListener(this); 
    refresh.setOnClickListener(this); 
    forward.setOnClickListener(this); 
    clearHistory.setOnClickListener(this); 

} 

@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 
    switch(v.getId()){ 
    case R.id.bGo: 
     String theWebSite = url.getText().toString(); 
     ourBrow.loadUrl(theWebSite); 
     //hiding keyboard after the input in EditText 
     InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
     imm.hideSoftInputFromWindow(url.getWindowToken(),0); 
     break; 
    case R.id.bBack: 
     if(ourBrow.canGoBack()) 
      ourBrow.goBack(); 
     break; 
    case R.id.bRefresh: 
     ourBrow.reload(); 
     break; 
    case R.id.bForward: 
     if(ourBrow.canGoForward()) 
      ourBrow.goForward(); 
     break; 
    case R.id.bHistory: 
     ourBrow.clearHistory(); 
     break; 

    } 
} 

ourViewClient.java

public class ourViewClient extends WebViewClient { 
@Override 
public boolean shouldOverrideUrlLoading(WebView v,String url){ 
    v.loadUrl(url); 
    return true; 
}