Android通过WebView实现office文档在线预览无法显示问题解决

         Android在线预览office文档的方法有很多,其中,个人觉得,如果你的项目对该文档的要求是只读的话,那么最方便的就是使用WebView来显示,方法是使用微软的预览方法:

        https://view.officeapps.live.com/op/view.aspx?src=(文档在服务器中的地址);

        但是如果你使用的是这种在线预览方法,你会发现,当你配置完WebSettings并且loadUrl(url)后,根本就无法预览office文档。

       这里我告诉你为什么?关键在于WebView需要配置setWebViewClient并且重写shouldOverrideUrlLoading(WebView view, String url) 方法,在该方法中加上代码view.loadUrl(url);你会发现现在就已经加载出来了。

附上代码

public void initWebView(String url) {
        settings = webview.getSettings();
        settings.setUseWideViewPort(true);
        settings.setLoadWithOverviewMode(true); 
        settings.setSupportZoom(true); 
        settings.setBuiltInZoomControls(true);
        settings.setJavaScriptEnabled(true);
        settings.setDomStorageEnabled(true);
        settings.setAllowFileAccessFromFileURLs(true);
        webview.loadUrl(url);
        webview.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
               
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
              
            }

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
               
                view.loadUrl(url);//此行代码必须添加上去,否则不会显示
                return true;// 在跳转链接时强制在当前webview中加载
            }
        });
    }

          以上只是个人的观点,如果有什么错误的地方,请大家帮忙指正,谢谢大家!

你可能感兴趣的:(android)