web-dev-qa-db-ja.com

誰かがandroid)でwebview実装の正確な例を1つ挙げることができますか

こんにちは私はWebView実装を使用してAndroidアプリケーションを開発しています。

公式Androidチュートリアル

Eclipseでプロジェクトをビルドするときにエラーが発生しませんが、アプリケーションを実行するときにエラーが発生します。

アプリケーションが予期せず動作を停止しました

17
andriod_testing

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"/>
22
Ghost

Android WebView loadurl example

Android WebViewの例

WebViewは、アプリにWebページを表示するために使用されていました。 WebViewを作成して任意のWebサイトをロードしましょう

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
Thomas Daniel

WebViewは、アプリケーション内のWebページを表示するビューです。 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");
1
Sajan Rana
  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));
0
Nilesh Panchal

どうぞ:

    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マニフェストに設定することを忘れないでください。

0
Thommy

@ghostの回答に加えて、Webビューをブラウザのように完全に機能させたい場合、つまり前後に移動できる場合は、以下のようにアクティビティのonBackPressedメソッドをオーバーライドする必要があります。

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

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(){
0
K A FAROOQUI