WebView加载网络PDF(一)

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

	}

}

 

时间: 2024-10-24 12:20:46

WebView加载网络PDF(一)的相关文章

WebView加载网络PDF(二)

PS:该示例有bug,请参见WebView加载网络PDF(一) MainActivity如下: package c.c; import android.os.Bundle; import android.webkit.WebView; import android.webkit.WebSettings.LayoutAlgorithm; import android.app.Activity; /** * Demo描述: * 利用WebView加载网络PDF资源 * 方法1:利用设备自带浏览器打开

android webview 加载网络视频

webView.loadUrl(video_url); webView.setInitialScale(50); WebSettings setting = webView.getSettings(); setting.setUseWideViewPort(true); setting.setJavaScriptEnabled(true); //Support JavaScript setting.setPluginsEnabled(true); //Support Plugins, for e

android webview加载页面出现样式问题

问题描述 android webview加载页面出现样式问题 android webview加载页面,页面有时候字体会很大,页面样式不对,用手机浏览器或者微信内置浏览器打开都是好的,问题不是必现,但是概率较高 解决方案 Android webview 加载html 页面缩放的问题android webview 加载网络视频 解决方案二: 你可以设置webview的默认文字大小来防止打开时文字过大的情况 解决方案三: textsize="dp" 解决方案四: wv.getSettings

隐藏-Android中的webview加载完成前后如何用一个图片来进行遮挡加载延迟的闪烁

问题描述 Android中的webview加载完成前后如何用一个图片来进行遮挡加载延迟的闪烁 用webview加载一个链接,但因为网速或者网页内容等问题,出现延迟,但是如果直接打开APP就开始加载的话,如果用户没有网络的情况下打开APP就什么都看不到了.所以想整个LOGO之类的全屏图片,等加载完成了之后再隐藏这个图片.该怎么实现,着急,在线等..... 解决方案 做个全屏的layout,等webview加载完就隐藏掉,在onPageFinished里处理 加载前可以先判断网络是不连通,不通就显示

webview 加载html加载不出来

问题描述 webview 加载html加载不出来 我的html文件用到了JS,html里面有好多图片动画但是图片他拿出来了 然后我再电脑上面可以打开来,但是加载到webview上面就不行.我所有的文件都保存到了assets的目录下面 解决方案 package c.c;import android.os.Bundle;import android.webkit.WebView;import android.app.Activity;public class MainActivity extends

android webview加载HTML5网站,监听HTML5视频播放?

问题描述 android webview加载HTML5网站,监听HTML5视频播放? 如题:在android盒子上面自己做了一个apk,布局是一个webview和一个SurfaceView, webview加载一个HTML网站网站代码为: <!DOCTYPE HTML> your browser does not support the video tag 里面播放的是一个avi格式的视频,视频可以播放. 我现在因为要修改视频输出的声道设置,本人有SDK源码,源码的Mediaplayer有设置

android webview 加载html 第一次字体正常,点击按钮后字体变大

问题描述 android webview 加载html 第一次字体正常,点击按钮后字体变大 使用android webview 加载html页面,第一次加载的没有问题,点击按钮之后,页面上非 控件的元素字体变大.哪位大神知道这是什么原因? 解决方案 public class MainActivity extends Activity { private WebView webView; private long firstTime = 0; private FrameLayout frame;

iOS中 UIWebView加载网络数据 技术分享

版权声明:本文为博主原创文章,未经博主允许不得转载. 直奔核心: [objc] view plain copy #import "TechnologyDetailViewController.h"   #define kScreenWidth [UIScreen mainScreen].bounds.size.width   #define kScreenHeight [UIScreen mainScreen].bounds.size.height   @interface Techn

Android WebView加载html5页面实例教程

实例一:WebView加载html5实现炫酷引导页面 大多数人都知道,一个APP的引导页面还是挺重要的,不过要想通过原生的Android代码做出一个非常炫酷的引导页相对还是比较复杂的,正巧html5在制作炫酷动画网页方面比较给力,我们不妨先利用html5做出手机引导页面,然后将其嵌入APP中. 首先我们分析一下,都需要做哪些工作? 1.制作html5引导页面. 2.把做好的页面放入Android工程中assets文件夹下. 3.利用WebView加载asset文件夹下的html文件. 4.在引导