关闭

WebView加载网络PDF

1455人阅读 评论(0) 收藏 举报
分类:
main.xml如下:

 
<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/webView"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent"  
        android:layout_centerHorizontal="true"  
        android:layout_centerVertical="true" />  
  
</RelativeLayout>  
 
MainActivity如下:
 
package c.c;  
import android.app.Activity;  
import android.content.Intent;  
import android.graphics.Bitmap;  
import android.net.Uri;  
import android.os.Bundle;  
import android.webkit.DownloadListener;  
import android.webkit.WebView;  
import android.webkit.WebViewClient;  
import android.widget.Button;  
  
/** 
 * Demo描述: 利用WebView加载网络PDF资源,并且实现下载 
 * 步骤: 
 * 1 利用谷歌服务得到解析后的pdf,且在Webview中显示 
 * 2 实现Webview的下载监听. 
 *  即mWebView.setDownloadListener()实现下载 
 *   
 * 备注: 
 * 测试时最好链接VPN 
 */  
public class MainActivity extends Activity {  
    private WebView mWebView;  
    private Button mButton;  
  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        init();  
    }  
  
    private void init() {  
        mWebView = (WebView) findViewById(R.id.webView);  
        loadPDF();  
    }  
  
    private void loadPDF() {  
        mWebView.getSettings().setJavaScriptEnabled(true);  
        mWebView.getSettings().setSupportZoom(true);  
        mWebView.getSettings().setDomStorageEnabled(true);  
        mWebView.getSettings().setAllowFileAccess(true);  
        mWebView.getSettings().setPluginsEnabled(true);  
        mWebView.getSettings().setUseWideViewPort(true);  
        mWebView.getSettings().setBuiltInZoomControls(true);  
        mWebView.requestFocus();  
        mWebView.getSettings().setLoadWithOverviewMode(true);  
        String pdfUrl = "http://www8.cao.go.jp/okinawa/8/2012/0409-1-1.pdf";  
        mWebView.loadUrl("http://docs.google.com/gview?embedded=true&url="+ pdfUrl);  
  
        mWebView.setWebViewClient(new WebViewClient() {  
            @Override  
            public void onPageStarted(WebView view, String url, Bitmap favicon) {  
                super.onPageStarted(view, url, favicon);  
            }  
  
            @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);  
  
            }  
  
            @Override  
            public void onReceivedError(WebView view, int errorCode,  
                    String description, String failingUrl) {  
                super.onReceivedError(view, errorCode, description, failingUrl);  
  
            }  
  
        });  
  
        mWebView.setDownloadListener(new DownloadListener() {  
            @Override  www.2cto.com  
            public void onDownloadStart(String url, String userAgent,  
                    String contentDisposition, String mimetype,long contentLength) {  
                 System.out.println("=========>开始下载 url =" + url);  
                 Uri uri = Uri.parse(url);     
                 Intent intent = new Intent(Intent.ACTION_VIEW, uri);     
                 startActivity(intent);  
            }  
        });  
  
    }  
  
}  
0
1

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:208752次
    • 积分:2704
    • 等级:
    • 排名:第14016名
    • 原创:15篇
    • 转载:444篇
    • 译文:0篇
    • 评论:9条
    最新评论