Intereting Posts
Android Volley двойной пост, когда медленный запрос Не удается записать на внешнее хранилище, если приложение не перезапущено после предоставления разрешения Как добавить кнопку динамически в Android? Платежи в приложениях для Android Amazon AppStore Любые предложения по работе с xxhdpi в эмуляторе Android? Как сделать кнопку с плавающей кнопкой «только изображение» Фон Android Button как форма с тенью Поток и воспроизведение аудио от приложения android до любого доступного динамика, такого как A2DP, автомобильные динамики и т. Д. SQLiteException: не удается запустить транзакцию в транзакции (код 1) Как использовать googletest для тестирования кода на C ++, который вызывает java на android? Запустить приложение для Android без активности Android: Как установить слушателя в MenuButton? Как оживить изменение текста в TextView? Разбор и воспроизведение файла .pls на Android Скорость чтения SharedPreferences

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

У меня есть приложение для 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.