Как загрузить внешнюю веб-страницу внутри WebView
Моя проблема заключается в том, что веб-страница не загружается в webview.
mWebview.loadUrl("http://www.google.com");
запускает веб-браузер...
Вот код моей деятельности:
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" />
9 ответов:
Благодаря этому сообщению, я, наконец, нашел решение. Вот код:
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 ); } }
Попробуйте это
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; } }
public class WebViewController extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } } webView.setWebViewClient(new WebViewController());
Пожалуйста, используйте этот код: -
Главная.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>
Основная активность.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(); } }
Попробуйте этот код, если какой-либо запрос спросит меня.
Вы можете сделать вот так.
webView = (WebView) findViewById(R.id.webView1); webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl("Your URL goes here");
Это очень просто попробуйте интегрировать эти строки кода сначала возьмите разрешение в файле Манифеста Android
<uses-permission android:name="android.permission.INTERNET" />
Затем напишите некоторый код в вашей деятельности.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"); }
}
Попробуйте это, это поможет вам решить вашу проблему
Просто зайдите в XML-файл и дайте id вашему webView, а затем в 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"); } }
Попробуйте это;
webView.loadData("<iframe src='http://www.google.com' style='border: 0; width: 100%; height: 100%'></iframe>", "text/html; charset=utf-8", "UTF-8");
Добавьте метод ниже в свой класс activity.Здесь браузер-это не что иное, как ваш объект webview.
Теперь вы можете легко просматривать веб-страницы.
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && browser.canGoBack()) { browser.goBack(); return true; } return false; }