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。 我得到的网页不可用。

谁能帮忙?

  • Android 4.3上的“requestLayout()不正确地调用...”错误
  • 如何更改android评分吧星星?
  • 如何在运行时获取设备高度和宽度?
  • 左侧,工具栏和LinearLayout之间的原因不明的间隙/填充
  • Android:使用XML自定义EditText布局
  • 棉花糖RelativeLayoutperformance奇怪与alignBaseline
  • 如何使可缩放滚动视图?
  • Android开始活动而不创build新的实例
  • 您是否在清单文件中添加了互联网权限? 如果不添加下面的行。

      <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