Проблема с загрузкой webview - PullRequest
6 голосов
/ 06 марта 2011

У меня плохой опыт работы с веб-браузером, который не загружает веб-страницу, которую я запрашиваю.

Я не могу загрузить Google или любую другую страницу с веб-просмотром. Я положил в XML:

<WebView  xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/webview"
    android:layout_marginLeft="250px"
         android:layout_marginTop="80px"
    android:layout_width="180px"
    android:layout_height="160dip"
/>

Затем я ввел код:

mWebView = (WebView) findViewById(R.id.webview);
            mWebView.getSettings().setJavaScriptEnabled(true);
            mWebView.loadUrl("http://www.google.com");

Это показывает, что веб-страница недоступна.

Я также добавил разрешение в манифест.

У меня есть другое действие в этом приложении, которое прекрасно загружает URL-адрес YouTube, используя:

startActivity(new Intent( Intent.ACTION_VIEW,
                                Uri.parse("http://www.youtube.com/watch?v=XS998HaGk9M")));// Starts an intent to watch the video

Я не уверен, что это может быть, и мне действительно нужен совет по этому поводу, так как мне нужно, чтобы это работало.

Спасибо

Редактировать: я также не могу получить доступ к любой веб-странице в самом эмуляторе. При поиске в строке поиска в эмуляторе это говорит то же самое при подключении к Google.

Я не уверен, почему это будет связано с YouTube с намерением, а не веб-просмотра

Edit: Это даже не подключается к YouTube сейчас, он говорит так же, как и выше. Это запутано, так как мне нужно, чтобы это работало для моего проекта завтра. Если веб-просмотр продолжает падать, это не очень надежно. Возможно, мне придется сменить устройство, с которым я работаю, поскольку с Android все идет не так.

Редактировать: Я только что вернулся через несколько часов, не касаясь кода или эмулятора, и когда я запустил приложение, видео на YouTube снова было включено, и я могу просматривать в эмуляторе. Но я все еще не могу подключиться через веб-просмотр. ОЧЕНЬ Ненадежный: (* ​​1026 *

Ответы [ 4 ]

3 голосов
/ 11 марта 2011

Убедитесь, что вы включили разрешения для доступа в Интернет

<uses-permission android:name="android.permission.INTERNET" />
2 голосов
/ 25 марта 2012

У меня была такая же проблема. Кажется, это решается при размещении кода webview в другом месте, чем в методе MainActivity.onCreate(). Например, поместите код, содержащий webview.loadUrl(…), в метод onClick кнопки. Веб-представление отображается пустым при запуске операции и корректно заполняется при нажатии кнопки.

1 голос
/ 19 февраля 2014
 package com.Example.Browser;

 import android.app.Activity;
 import android.os.Bundle;
 import android.view.KeyEvent;
 import android.view.View;
 import android.webkit.WebSettings;
 import android.webkit.WebSettings.PluginState;
 import android.webkit.CookieManager;
 import android.webkit.WebView;
 import android.webkit.WebSettings.RenderPriority;
 import android.webkit.WebViewClient;

 public class MainActivity extends Activity {


private WebView mWebView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    CookieManager.getInstance().setAcceptCookie(true);//Enable Cookies

    mWebView = (WebView) findViewById(R.id.webView1);
    mWebView.getSettings().setJavaScriptEnabled(true);//Enable Java Script
    mWebView.setWebViewClient(new HelloWebViewClient());
    mWebView.loadUrl("http://www.google.com/"); //Set Home page
    mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);//Remove ScrollBars
    mWebView.getSettings().setDefaultFontSize(12);//Set Font Size
    mWebView.getSettings().setLoadsImagesAutomatically(true);//Enable Image Loading
    mWebView.getSettings().setPluginState(PluginState.ON);//Enable Flash
    mWebView.getSettings().setRenderPriority(RenderPriority.HIGH); //improves Feedback     on touch
    //mWebView.setBackgroundColor(0x00000000);//Transparent Screen When Loading
    //mWebView.getSettings().setBuiltInZoomControls(true);//Set Zoom Controls 
    //mWebView.getSettings().setDisplayZoomControls(false);//Always Hide Zoom     Controlls(Requires Api 11)

    mWebView.getSettings().setAppCacheMaxSize(1024*1024*8);//Set Cache (8mb)
    String appCachePath =     getApplicationContext().getCacheDir().getAbsolutePath();//Set Cache (8mb)
    mWebView.getSettings().setAppCachePath(appCachePath);//Set Cache (8mb)
    mWebView.getSettings().setAllowFileAccess(true);//Set Cache (8mb)
    mWebView.getSettings().setAppCacheEnabled(true);//Set Cache (8mb)
    mWebView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);//Set Cache (8mb)

    mWebView.requestFocus(View.FOCUS_DOWN);//Enable WebView Interaction

    //mWebView.setWebViewClient(new WebViewClient() {//Open URL on Error
    //public void onReceivedError(WebView view, int errorCode, String description,     String failingUrl) {//Open URL on Error   
    //mWebView.loadUrl("http://www.google.com");//Open URL on Error 

    //mWebView.loadUrl("file:///android_asset/error_404.jpg"); //Show Offline HTML     file or Image on Error 
    //  }
    // });
  }

private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView webview, String url)
{


webview.loadUrl(url);
return true;
}
}

 @Override
 public boolean onKeyDown(int keyCode, KeyEvent event)
 {

 if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack())

{
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

 <WebView
    android:id="@+id/webView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

</RelativeLayout>
1 голос
/ 06 марта 2011

Есть ли у эмулятора доступ в интернет? Время от времени я замечал подобное поведение в эмуляторе, и это связано с тем, что эмулятор не запускается должным образом. Единственный обходной путь, который мне удалось придумать, - это перезапустить эмулятор, пока у него не будет доступа в Интернет (обычно один или два раза).

* 1003 Дан *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...