webview无法加载的问题

时间:2011-03-06 13:26:30

标签: android webview

我在使用webview时遇到了不好的经历,因为它没有加载我要求的网页。

我无法使用webview加载谷歌或任何其他页面。我已经放入了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");

这表明网页不可用。

我还在清单中添加了权限。

我在此应用程序中有另一个活动,可以使用以下方法加载youtube url:

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

我不确定这可能是什么,并且真正需要建议,因为我需要让它工作。

由于

编辑:我也无法访问实际模拟器本身内的任何网页。通过在模拟器中的搜索栏中搜索,这在连接到Google时会说同样的事情。

我不确定为什么这会以意图而不是webview连接到youtube

编辑:现在甚至没有连接到youtube,它说的与上面相同。这是搞砸了,因为我需要这个为明天的项目工作。如果webview继续下降,这不是很可靠。我可能不得不改变我正在使用的设备,因为android事情一直出错。

编辑:我几个小时后才回来而没有触及代码或模拟器,当我运行应用程序时,youtube视频重新开启,我可以在模拟器中浏览。但我仍然无法通过webview连接。非常不可靠:(

4 个答案:

答案 0 :(得分:3)

确保您已包含互联网访问权限

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

答案 1 :(得分:2)

我遇到了同样的问题。将webview代码放在MainActivity.onCreate()方法之外的其他地方似乎可以解决。例如,将包含webview.loadUrl(…)的代码放入按钮的onClick方法中。启动活动时WebView显示为空,单击按钮时正确填充。

答案 2 :(得分:1)

模拟器是否可以访问互联网?我有时注意到模拟器中的类似行为,这是由于模拟器无法正常启动。我能够想出的唯一一个工作就是重新启动模拟器,直到它可以访问互联网(通常是一两次)。

-Dan

答案 3 :(得分:1)

 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>