先来,打印:
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系列的样式相关)。