web-dev-qa-db-ja.com

WebView内に外部Webページをロードする方法

私の問題は、ウェブページがウェブビュー内にロードされていないことです。

mWebview.loadUrl("http://www.google.com");はWebブラウザを起動します...

これは私の活動のコードです:

import Android.app.Activity;
import Android.os.Bundle;
import Android.webkit.WebView;

public class Main extends Activity {

    private WebView mWebview;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

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

マニフェストに必要な許可を追加しました。

<uses-permission Android:name="Android.permission.INTERNET" />
107
Gilbou

これのおかげで post 、私は最終的に解決策を見つけました。コードは次のとおりです。

import Android.app.Activity;
import Android.os.Bundle;
import Android.webkit.WebResourceError;
import Android.webkit.WebResourceRequest;
import Android.webkit.WebView;
import Android.webkit.WebViewClient;
import Android.widget.Toast;
import Android.annotation.TargetApi;

public class Main extends Activity {

    private WebView mWebview ;

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        mWebview  = new WebView(this);

        mWebview.getSettings().setJavaScriptEnabled(true); // enable javascript

        final Activity activity = this;

        mWebview.setWebViewClient(new WebViewClient() {
            @SuppressWarnings("deprecation")
            @Override
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                Toast.makeText(activity, description, Toast.LENGTH_SHORT).show();
            }
            @TargetApi(Android.os.Build.VERSION_CODES.M)
            @Override
            public void onReceivedError(WebView view, WebResourceRequest req, WebResourceError rerr) {
                // Redirect to deprecated method, so you can use it in all SDK versions
                onReceivedError(view, rerr.getErrorCode(), rerr.getDescription().toString(), req.getUrl().toString());
            }
        });

        mWebview .loadUrl("http://www.google.com");
        setContentView(mWebview );

    }

}
211
Gilbou

これを試して

webviewlayout.xml:

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

あなたの活動:

WebView webView;
setContentView(R.layout.webviewlayout);
webView = (WebView)findViewById(R.id.help_webview);
webView.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("http://www.google.com");

更新

webView.setWebViewClient(new WebViewController());をアクティビティに追加します。

WebViewControllerクラス:

public class WebViewController extends WebViewClient {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}
38
Farhana Haque
public class WebViewController extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}
webView.setWebViewClient(new WebViewController());
16
Rahul

このコードを使用してください:-

Main.Xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:orientation="vertical" Android:layout_width="fill_parent"
    Android:layout_height="fill_parent" Android:background="@drawable/background">
    <RelativeLayout Android:layout_width="fill_parent"
        Android:layout_height="wrap_content" Android:background="@drawable/top_heading"
        Android:id="@+id/rlayout1">
        <TextView Android:layout_width="wrap_content"
            Android:layout_centerVertical="true" Android:layout_centerHorizontal="true"
            Android:textColor="#ffffff" Android:textSize="22dip"
            Android:textStyle="bold" Android:layout_height="wrap_content"
            Android:text="More Information" Android:id="@+id/txtviewfbdisplaytitle" />
    </RelativeLayout>
    <RelativeLayout Android:layout_width="fill_parent"
        Android:layout_height="fill_parent" Android:layout_below="@+id/rlayout1"
        Android:id="@+id/rlayout2">
        <WebView Android:id="@+id/webview1" Android:layout_width="fill_parent"
            Android:layout_height="fill_parent"
            Android:layout_weight="1.0" />
    </RelativeLayout>
</RelativeLayout>

MainActivity.Java

public class MainActivity extends Activity {
    private class MyWebViewClient extends WebViewClient {
          @Override
          public boolean shouldOverrideUrlLoading(WebView view, String url) {
              view.loadUrl(url);
              return true;
          }
    }
    Button btnBack;
    WebView webview;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        webview=(WebView)findViewById(R.id.webview1);
        webview.setWebViewClient(new MyWebViewClient());
        openURL();
    }

     /** Opens the URL in a browser */
    private void openURL() {
        webview.loadUrl("http://www.google.com");
        webview.requestFocus();
    }
}

質問がある場合は、このコードを試してください。

12
Dipak Keshariya

xMLファイルに移動して、webViewにidを指定し、Javaに次の行を貼り付けます。

   public class Main extends Activity {

private WebView mWebview;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.Your_layout_file_name);

    mWebview = (WebView)findViewById(R.id.id_you_gave _to_your_wenview_in_xml);
    mWebview.loadUrl("http://www.google.com");
    }   
}
2
Ankush Rawat

これらのコード行を最初にAndroid Manifestファイルで許可を取得して統合するのは非常に簡単です

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

次に、いくつかのコードを記述しますActivity.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:app="http://schemas.Android.com/apk/res-auto"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    tools:context="com.example.MainActivity">

<WebView xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:id="@+id/help_webview"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"

/>

</LinearLayout>

次に、これらのコードをMainActivity.Javaに記述します

import Android.app.Activity;
import Android.content.Intent;
import Android.content.res.Resources;
import Android.net.Uri;
import Android.support.v7.app.AppCompatActivity;
import Android.os.Bundle;
import Android.view.KeyEvent;
import Android.view.Window;
import Android.webkit.WebResourceRequest;
import Android.webkit.WebSettings;
import Android.webkit.WebView;
import Android.webkit.WebViewClient;
import Android.widget.Toast;

public class MainActivity extends Activity{
    private WebView mWebview ;
    String link = "";// global variable
    Resources res;// global variable
    @Override


      protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.activity_modernherbal_main);
            mWebview  = (WebView) findViewById(R.id.help_webview);
            WebSettings webSettings = mWebview.getSettings();
            webSettings.setJavaScriptEnabled(true);
            webSettings.setUseWideViewPort(true);
            webSettings.setLoadWithOverviewMode(true);



        final Activity activity = this;

        mWebview.setWebViewClient(new WebViewClient() {
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                Toast.makeText(activity, description, Toast.LENGTH_SHORT).show();
            }


});

    mWebview .loadUrl("http://www.example.com");

}

}

これを試して問題を解決するのに役立ちます

1
Pronab Roy

このようにすることができます。

webView = (WebView) findViewById(R.id.webView1);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("Your URL goes here");
1
KarthikKPN

これを試して;

webView.loadData("<iframe src='http://www.google.com' style='border: 0; width: 100%; height: 100%'></iframe>", "text/html; charset=utf-8", "UTF-8");
0
alicanozkara

アクティビティクラスに以下のメソッドを追加します。ここで、ブラウザはWebViewオブジェクトにすぎません。

これで、Webページを簡単に賢く見ることができます。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK) && browser.canGoBack()) {
        browser.goBack();
        return true;
    }
    return false;
}
0
G . Anil Guptha