WebView使用浏览器打开网页

时间:2014-08-29 14:49:32

标签: android webview

我正在使用WebView在Android应用中打开网页。 我将布局描述为:

<?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 Manifest文件中添加了以下权限:

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

在我的活动类中使用WebView作为:

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

完成后,我在一些Android手机上运行了应用程序。打开后,应用程序会询问用于打开网页的应用程序(Out of Chrome,Mozilla或手机上安装的任何其他浏览器),即“http://www.google.com”。

我希望应用在其中打开网页。帮助

2 个答案:

答案 0 :(得分:1)

您的xml是正确的。您需要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;
}

答案 1 :(得分:0)

您需要设置自定义WebViewClient并覆盖shouldOverrideUrlLoading

http://developer.android.com/reference/android/webkit/WebViewClient.html#shouldOverrideUrlLoading(android.webkit.WebView,java.lang.String)