Webview无法完成加载

时间:2013-05-06 23:40:17

标签: android android-webview

如果我使用按钮它可以工作,但它会重定向到默认浏览器。 我想使用webview,因为我想在我的webview中显示网站,并避免显示地址栏。

这是我的代码:

公共类MainActivity扩展了Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main1);

    WebView webview = (WebView) findViewById(R.id.webView1);
    webview.loadUrl("http://docs.google.com/gview?embedded=true&url=http://178.239.16.28/fzs/sites/default/files/dokumenti-vijesti/sample.pdf");
    webview.setWebViewClient (new WebViewClient());

}

3 个答案:

答案 0 :(得分:1)

尝试下面的代码序列,如果有任何问题,请告诉我。不要忘记为AndroidManifest.xml添加权限

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

更改为以下内容:

WebView webview = (WebView) findViewById(R.id.webView1);
webview.setWebViewClient (new HelloWebViewClient());
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("http://docs.google.com/gview?embedded=true&url=http://178.239.16.28/fzs/sites/default/files/dokumenti-vijesti/sample.pdf");

使用下面的snippts

private class HelloWebViewClient extends WebViewClient {


        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);

        }

答案 1 :(得分:0)

您的网址正在重定向。

您必须覆盖shouldOverrideUrlLoading

  

让主机应用程序有机会同步处理键事件。例如菜单快捷键事件需要对此进行过滤   办法。如果返回true,则WebView将不处理键事件。如果回来   假,WebView将始终处理键事件,因此没有超级   在视图链中将看到关键事件。默认行为返回   假的。

     

参数

     

view 正在启动回调的WebView。

     

事件   关键事件。

     

返回如果主机应用程序想要处理,则为True   键事件本身,否则返回false

答案 2 :(得分:0)

使用此行..

package org.example.webviewdemo;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;


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://docs.google.com/gview?embedded=true&url=http://178.239.16.28/fzs/sites/default/files/dokumenti-vijesti/sample.pdf");

    }


}

它会在加载文件之前显示加载程序。然后,一旦使用谷歌文档加载文件,加载器就会隐藏。希望这会帮助你。