安卓webview打印PDF、离线页面的标准做法

先来,打印:

	String name = currentWebView.getTitle()+".pdf";
	PrintManager printManager = (PrintManager) getSystemService(Context.PRINT_SERVICE);
	PrintAttributes.Builder builder = new PrintAttributes.Builder();
	builder.setColorMode(PrintAttributes.COLOR_MODE_COLOR);
	printManager.print("Print", currentWebView.createPrintDocumentAdapter(name), builder.build());

(其实网上有,但是那么多种做法,你选哪个?)

表现:与chrome中输入javascript:window.print()一致,都是调用系统打印机。Opera则是另外实现的。预览较快,预览完成后才能打印。Opera预览较慢,预览结束前就可以打印。都有文本。Opera生成的文件较小,但可能乱码。



将页面离线保存为mhtml文件:

	currentWebView.saveWebArchive(new File(getExternalFilesDir(null), currentWebView.getTitle()+".mht").getPath(), false, new ValueCallback<String>() {
		@Override
		public void onReceiveValue(String value) {
			toast(value);
		}
	});

兴冲冲下载github上的androidChromium项目,结果debug模式始终不把so库打包进去,降级gradle至原项目使用的版本,花了一分钟下载完成后android studio又说不支持。不支持你下载下来干嘛?浪费我c盘一百兆的空间……

    defaultConfig {
        ...
        ndk {
            abiFilters 'armeabi', 'armeabi-v7a'
        }
    }

可以debug后找找看好玩的特性,ftp支持,不在里面;原生谷歌翻译支持,不再里面。

popupmenu下拉菜单的早期实现看吐了……各种逻辑明明一层套一层的,最终还是用最简单的全屏dialog实现(window.getAttributes设置宽高,背景清空,自定义视图想怎么布局就怎么布局。按钮items背景设为支持库中的?attr/listChoiceBackgroundIndicator属性,就自动有了点击波纹特效。特效色值与colorcontrol系列的样式相关)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值