有人可以在android中给出一个webview实现的确切示例

时间:2011-12-23 09:53:48

标签: android webview android-webview

您好我正在使用WebView实现开发Android应用程序。

我关注了official android tutorial

在eclipse中构建项目时,我没有遇到错误,但是在运行应用程序时:

  

应用程序已意外停止工作

8 个答案:

答案 0 :(得分:17)

您的Java文件应该是这样的:

public class WebViewSampleActivity extends Activity {
     WebView wb;
    private class HelloWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            return false;
        }
    }
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);      
        wb=(WebView)findViewById(R.id.webView1);        
        wb.getSettings().setJavaScriptEnabled(true);
        wb.getSettings().setLoadWithOverviewMode(true);
        wb.getSettings().setUseWideViewPort(true);
        wb.getSettings().setBuiltInZoomControls(true);
        wb.getSettings().setPluginState(WebSettings.PluginState.ON);
        wb.getSettings().setPluginsEnabled(true);           
        wb.setWebViewClient(new HelloWebViewClient());
        wb.loadUrl("http://www.examplefoo.com");        
    }
}

你的xml文件应该是这样的:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
    android:layout_gravity="center">

    <WebView
        android:id="@+id/webView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center" />

</LinearLayout>

<uses-sdk><uses-sdk/>之后的清单中使用以下内容:

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

答案 1 :(得分:2)

Android WebView loadurl example

WebView曾经在我们的应用程序中显示网页。让我们制作一个WebView并加载任何网站

AndroidManifest.XML

中提供权限
<uses-permission android:name="android.permission.INTERNET"/>

activity_main.xml

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

MainActivity.Java

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;

public class MainActivity extends AppCompatActivity
{
private WebView webview;

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

webview=(WebView)findViewById(R.id.webview);
//loads androidride homepage to webview
webview.loadUrl("https://www.androidride.com");
}
}

答案 2 :(得分:1)

WebView是一种在应用程序中显示网页的视图。您还可以指定HTML字符串,并使用WebView在应用程序中显示它。

示例教程:http://www.viralandroid.com/2015/09/android-webview-tutorial-with-examples.html

activity_main.xml文件

<WebView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/webView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>

MainActivity.java文件

import android.webkit.WebView;

...

webView = (WebView) findViewById(R.id.webView1);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.loadUrl("http://www.viralandroid.com");

答案 3 :(得分:0)

你走了:

    LinearLayout root = new LinearLayout(this);
root.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

WebView wv = new WebView(this);
wv.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
wv.getSettings().setJavaScriptEnabled(true); 

wv.loadUrl("http://www.google.com");
root.addView(wv);

setContentView(root);

将此代码放入onCreate-Method中。 并且不要忘记在Android Manifest中设置权限Internet。

答案 4 :(得分:0)

  class WebViewClass extends WebViewClient {
        final  ProgressBar loadProgress;
        final  WebView wv;

        WebViewClass(WebView webView, ProgressBar progressBar) {
            this.wv = webView;
            this.loadProgress = progressBar;
        }

        public void onPageFinished(WebView view, String url) {
            wv.setVisibility(View.VISIBLE);
            loadProgress.setVisibility(View.INVISIBLE);
            view.clearCache(true);
        }

        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
            wv.loadData("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" + "<center>" + getString(R.string.erroopsproblem) + ".</center>", "text/html", "UTF-8");
        }
    }

现在在onCreate()上使用此类,如

WebView wv = (WebView) findViewById(R.id.webview);
        wv.setWebViewClient(new WebViewClient());
        wv.getSettings().setLoadsImagesAutomatically(true);
        wv.getSettings().setJavaScriptEnabled(true);
        wv.setScrollBarStyle(View.VISIBLE);
        wv.getSettings().setBuiltInZoomControls(true);
        wv.getSettings().setSupportZoom(true);
        wv.getSettings().setLoadWithOverviewMode(true);
        wv.getSettings().setUseWideViewPort(true);
        wv.getSettings().setAllowContentAccess(true);
        wv.loadUrl(Dest);
        wv.setVisibility(View.INVISIBLE);
        wv.setWebViewClient(new WebViewClass(wv, loadProgress));

答案 5 :(得分:0)

Xml文件

<WebView xmlns:android="http://schemas.android.com/apk/res/android"

   android:id="@+id/myweb"

   android:layout_width="fill_parent"

   android:layout_height="fill_parent"/>

java文件

 WebView web = (WebView) findViewById(R.id.myweb);

 web.setWebViewClient(new WebViewClient());

 web.getSettings().setLoadsImagesAutomatically(true);

 web.getSettings().setJavaScriptEnabled(true);

 web.getSettings().setBuiltInZoomControls(true);

 web.getSettings().setSupportZoom(true);

 web.getSettings().setLoadWithOverviewMode(true);

 web.getSettings().setUseWideViewPort(true);

 web.getSettings().setAllowContentAccess(true);

 web.loadUrl("https://www.technolifehacker.com");

 web.setWebViewClient(new WebViewClient(){

答案 6 :(得分:0)

除了@ghost答案之外,如果您希望Web视图像浏览器一样具有完整的功能,即可以前进和后退,则需要覆盖活动的onBackPressed方法,如下所示

@Override
public void onBackPressed() {
if (webView.canGoBack()) {
    webView.goBack();
  } else {
    super.onBackPressed();
  }
}

答案 7 :(得分:-1)

你必须

  1. 创建一个布局XML文件,例如'test.xml'
  2. 创建一个继承Activity的类,例如'wvtutorial
  3. 在其生命周期的OnCreate方法中,创建一个WebView实例,例如'wview',初始化值为null
  4. 和其他