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);
}
});
}
}