Intereting Posts
Как изменить цвет текста по умолчанию с помощью настраиваемой темы? Android Async, Handler или Timer? Как получить тело Response при возникновении ошибки при использовании Retrofit 2.0 Observables Экран эмулятора Android заполняет только часть доли фактического экрана эмулятора Android. Android: Как настроить текст для макета? Диалог ввода текста Как я могу вызвать getContentResolver в android? Пример использования вкладок Android с представлениями вместо действий? Список слоев xml для Android не отображается корректно на некоторых устройствах Неожиданно неожиданно произошла авария в галактике nexus Как использовать плагин Doxygen в Android Studio? Как отклонить AlertDialog в android Изменение формы сплошной цвет во время выполнения внутри Drawable xml, используемого в качестве фона Предварительный просмотр камеры растягивается даже после установки правильных размеров Как удалить или удалить приложение Android из Admob?

Веб-просмотр андроида с пустой страницей

У меня есть приложение для Android, которое я разрабатываю с использованием эмулятора, работающего на Android 2.3.3 со встроенным WebView, в рамке, вложенной в linearlayout (по вертикали). Независимо от того, какой код я использую, он никогда ничего не делает. У меня есть разрешения на приложение для Android в INTERNET. Даже при попытке загрузить только HTML-код. Я получаю пустую белую страницу, никаких ошибок нет. Ничего в logcat.

WebView wview = (WebView)findViewById(R.id.webView1); wview.getSettings().setJavaScriptEnabled(true); 

Я попытался все три из них попытаться загрузить что-либо в веб-просмотр:

 wview.loadUrl("http://www.google.com"); wview.loadData("<HTML><BODY><H3>Test</H3></BODY></HTML>","text/html","utf-8"); wview.loadDataWithBaseURL(null, "<HTML><BODY><H3>Test</H3></BODY></HTML>","text/html","utf-8",null); 

Все три дают мне те же результаты. Ничего.

Есть идеи?

Solutions Collecting From Web of "Веб-просмотр андроида с пустой страницей"

Возможно, это слишком поздно, но я хотел поделиться с вами своим опытом, потому что у меня была такая же проблема, и я потратил на это много времени.

Поместите свой WebView в RelativeLayout а не в FrameLayout .

То, что я тестировал: мой WebView onPageFinished() вызывался каждый раз, но на экране у меня была пустая страница. Из chrome://inspect отладчик WebView я смог «ping» мой WebView , нажав кнопку inspect , и после этого WebView мгновенно WebView . Мои мысли. WebView не корректно отображается в FrameLayout , и RelativeLayout исправляет проблему (даже вызовы invalidate() и requestLayout() не помогли).

Я думаю, что если вы отредактируете часть своего кода, тогда это будет нормально. Посмотрите, как я это делаю в моем случае ниже. Попробуйте для вас таким образом.
Для отображения веб-страницы

 final WebView wbView = (WebView) findViewById(R.id.WebView); wbView.getSettings().setJavaScriptEnabled(true); wbView.loadUrl("https://play.google.com/store/apps"); wbView.clearView(); wbView.measure(100, 100); wbView.getSettings().setUseWideViewPort(true); wbView.getSettings().setLoadWithOverviewMode(true); 

Для показа HTML:
См. Этот учебник.

  • Android-учебник-HTML-файл-в-WebView
 wbView.getSettings().setDomStorageEnabled(true); 

Я дал +1, потому что это была действительная помощь для правильной работы webview, но это не было решением моей проблемы.

То, чего я не понимал, это то, что у меня есть wrap_content, включая мой макет webview, и это вызвало его высоту 0px. Установив это для fill_parent, я решил проблему. (Webview с белым фоном и приложением с белым фоном, вы не можете сказать его не полный рост, когда он отображается как полная высота в дизайнере макета).

Спасибо за вашу помощь!

Вместо передачи null, вы должны передать ему пустую String . Ex: ""
Поэтому вы должны называть это следующим образом:
wview.loadDataWithBaseURL("", "<HTML><BODY><H3>Test</H3></BODY></HTML>","text/html","utf-8","");

clearView устарел.

Использование:

 webView.loadUrl("about:blank") 

Я думаю, что вам нужен WebViewClient. После установки вызова webviewclient webview.loadUrl (_url); Что-то вроде этого ….

 private void loadUrlInWebView(String _URL){ WebView myWebView = (WebView) findViewById(R.id.webviewer); WebSettings webSettings = myWebView.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setUseWideViewPort(true); webSettings.setLoadWithOverviewMode(true); myWebView.setWebViewClient(new MyWebViewClient()); myWebView.loadUrl(_URL); } private class MyWebViewClient extends WebViewClient{ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show(); } } 

Измените wrap_content на fill_parent в макете веб-просмотра. Это сработало для меня

Вы можете использовать следующий код, это будет полезно:

 ****WebView myWebView = (WebView) findViewById(R.id.webview); myWebView.setWebViewClient(new MyWebViewClient());**** **private class MyWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (Uri.parse(url).getHost().equals("www.example.com")) { // This is my web site, so do not override; let my WebView load the page return false; } // Otherwise, the link is not for a page on my site, so launch another Activity that handles URLs Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(intent); return true; } }**`enter code here` 

Попытайтесь увеличить ОЗУ для своего эмулируемого устройства. Это решило проблему для меня.

Я нашел это, посмотрев сообщения logcat в Android Monitor (Android Studio). Приведенные ниже сообщения дали мне представление о том, что было не так для увеличения объема оперативной памяти :

 W/art: Throwing OutOfMemoryError "Failed to allocate a 6635532 byte allocation with 1170528 free bytes and 1143KB until OOM" W/JavaBrowserViewRendererHelper: Error allocating bitmap E/chromium: [ERROR:java_browser_view_renderer_helper.cc(132)] Error unlocking java bitmap pixels.