WebView加載網絡PDF(一)

main.xml如下:

[html]  

<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"  

    xmlns:tools="https://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如下:

[java]  

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 = "https://www8.cao.go.jp/okinawa/8/2012/0409-1-1.pdf";  

        mWebView.loadUrl("https://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.aiwalls.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);  

            }  

        });  

  

    }  

  

}  

 

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *