Android WebView不加载URL

我想在WebView加载URL

我已经使用了下面的代码:

 webView = (WebView) findViewById(R.id.webview1); webView.setWebViewClient(new HostsWebClient()); webView.getSettings().setPluginState(PluginState.ON); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(false); webView.getSettings().setPluginsEnabled(true); webView.getSettings().setSupportMultipleWindows(false); webView.getSettings().setSupportZoom(false); webView.setVerticalScrollBarEnabled(false); webView.setHorizontalScrollBarEnabled(false); webView.loadUrl(URL); 

但是,当我执行它,我无法加载的url。 我得到的网页不可用。

谁能帮忙?

Solutions Collecting From Web of "Android WebView不加载URL"

您是否在清单文件中添加了互联网权限? 如果不添加下面的行。

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

希望这会帮助你。

编辑

使用下面的行。

 public class WebViewDemo extends Activity { private WebView webView; Activity activity ; private ProgressDialog progDailog; @SuppressLint("NewApi") @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); activity = this; progDailog = ProgressDialog.show(activity, "Loading","Please wait...", true); progDailog.setCancelable(false); webView = (WebView) findViewById(R.id.webview_compontent); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setLoadWithOverviewMode(true); webView.getSettings().setUseWideViewPort(true); webView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { progDailog.show(); view.loadUrl(url); return true; } @Override public void onPageFinished(WebView view, final String url) { progDailog.dismiss(); } }); webView.loadUrl("http://www.teluguoneradio.com/rssHostDescr.php?hostId=147"); } 

在清单中添加权限Internet权限。

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

这个代码工作

  public class WebActivity extends Activity { WebView wv; String url="http://www.teluguoneradio.com/rssHostDescr.php?hostId=147"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_web); wv=(WebView)findViewById(R.id.webUrl_WEB); WebSettings webSettings = wv.getSettings(); wv.getSettings().setLoadWithOverviewMode(true); wv.getSettings().setUseWideViewPort(true); wv.getSettings().setBuiltInZoomControls(true); wv.getSettings().setPluginState(PluginState.ON); wv.setWebViewClient(new myWebClient()); wv.loadUrl(url); } public class myWebClient extends WebViewClient { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { // TODO Auto-generated method stub super.onPageStarted(view, url, favicon); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // TODO Auto-generated method stub view.loadUrl(url); return true; } } 

也许SSL

  @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { // ignore ssl error if (handler != null){ handler.proceed(); } else { super.onReceivedSslError(view, null, error); } } 

在你的web视图上使用以下的东西

 webview.setWebChromeClient(new WebChromeClient()); 

然后为WebChromeClient类实现所需的方法。

首先,检查清单文件中是否有Internet权限。

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

然后,您可以在onCreate()或initialize()方法中添加以下代码 –

 final WebView webview = (WebView) rootView.findViewById(R.id.webview); webview.setWebViewClient(new MyWebViewClient()); webview.getSettings().setBuiltInZoomControls(false); webview.getSettings().setSupportZoom(false); webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); webview.getSettings().setAllowFileAccess(true); webview.getSettings().setDomStorageEnabled(true); webview.loadUrl(URL); 

写一个类来处理webview的callback –

 public class MyWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { //your handling... return super.shouldOverrideUrlLoading(view, url); } } 

在同一class,你也可以使用其他重要的callback,如 –

 - onPageStarted() - onPageFinished() - onReceivedSslError() 

此外,您可以添加“SwipeRefreshLayout”来启用刷新刷新和刷新网页视图。

 <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/swipeRefreshLayout" android:layout_width="match_parent" android:layout_height="match_parent"> <WebView android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.v4.widget.SwipeRefreshLayout> 

当用户滑动屏幕时刷新webview:

 SwipeRefreshLayout mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipeRefreshLayout); mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { new Handler().postDelayed(new Runnable() { @Override public void run() { mSwipeRefreshLayout.setRefreshing(false); webview.reload(); } }, 3000); } }); 

作为替代scheme:

对我来说, webView.getSettings().setUserAgentString("Android WebView")做了诡计。

我已经实现了INTERNET权限和WebViewClient以及WebChromeClient