Android本机支持预览PDF文件和其他文档?

Android本机支持预览PDF文件和其他文档?,android,pdf,docx,Android,Pdf,Docx,快速版本: Android中是否有类似于iOS上的WKWebView的本地类,可以显示Word文档和PDF 长版本: 我正在将混合应用程序的本机包装部分移植到Android上。在iOS中,我可以使用WKWebView来显示各种文档的预览,特别是Word(.docx)文档和PDF文件 使用查看意图,我可以让Android在Adobe的viewer中打开PDF,但在安装之前,我会遇到一个例外,即无法找到查看文件类型的应用程序。Android中真的没有对如此普通的东西的本地支持吗?我手机上的文件应用程

快速版本:

Android中是否有类似于iOS上的
WKWebView
的本地类,可以显示Word文档和PDF

长版本:

我正在将混合应用程序的本机包装部分移植到Android上。在iOS中,我可以使用
WKWebView
来显示各种文档的预览,特别是Word(.docx)文档和PDF文件

使用查看意图,我可以让Android在Adobe的viewer中打开PDF,但在安装之前,我会遇到一个例外,即无法找到查看文件类型的应用程序。Android中真的没有对如此普通的东西的本地支持吗?我手机上的文件应用程序(我可以查看下载等)可以打开并显示PDF,但显然没有在操作系统中注册

Android中是否有类似于iOS上的WKWebView的本机类,可以显示Word文档和PDF

如果“本机类”指的是“安卓SDK内置的Java类”,那么答案是“不是真的”。DOCX没有任何东西。安卓5.0+有一个PdfRenderer,但它是为使用安卓打印框架生成的PDF打印预览而设计的,无法呈现许多任意PDF

在iOS中,我可以使用WKWebView来显示各种文档的预览,特别是Word(.docx)文档和PDF文件

有开源和商业图书馆提供这一功能。我在2017年初离开

使用查看意图,我可以让Android在Adobe的viewer中打开PDF,但在安装之前,我会遇到一个例外,即无法找到查看文件类型的应用程序

这与“本地类”无关。
Intent
由应用程序及其注册组件(在您的情况下是活动)处理

目前,Android开源项目(AOSP)中没有一款应用程序是PDF查看器或其他文档格式的查看器。任何给定的设备是否会有一个(如谷歌文档)将有所不同

Android中真的没有对如此普通的东西的本地支持吗

就应用程序而言,设备制造商无需预安装PDF查看器或DOCX查看器。即使他们有一个,这些查看器的开发人员也不需要注册一个支持您使用的任何
Intent
结构的
。由于您的
Intent
不在您的问题范围内,因此我们无法评论对该
Intent
的支持有多普遍或不常见

Android中是否有类似于iOS上的WKWebView的本机类,可以显示Word文档和PDF

如果“本机类”指的是“安卓SDK内置的Java类”,那么答案是“不是真的”。DOCX没有任何东西。安卓5.0+有一个PdfRenderer,但它是为使用安卓打印框架生成的PDF打印预览而设计的,无法呈现许多任意PDF

在iOS中,我可以使用WKWebView来显示各种文档的预览,特别是Word(.docx)文档和PDF文件

有开源和商业图书馆提供这一功能。我在2017年初离开

使用查看意图,我可以让Android在Adobe的viewer中打开PDF,但在安装之前,我会遇到一个例外,即无法找到查看文件类型的应用程序

这与“本地类”无关。
Intent
由应用程序及其注册组件(在您的情况下是活动)处理

目前,Android开源项目(AOSP)中没有一款应用程序是PDF查看器或其他文档格式的查看器。任何给定的设备是否会有一个(如谷歌文档)将有所不同

Android中真的没有对如此普通的东西的本地支持吗


就应用程序而言,设备制造商无需预安装PDF查看器或DOCX查看器。即使他们有一个,这些查看器的开发人员也不需要注册一个支持您使用的任何
Intent
结构的
。由于您的
Intent
不在您的问题中,因此我们无法真正评论对
Intent

的支持有多普遍或不常见,因为我只是使用
val I=Intent(Intent.ACTION\u VIEW)
,直到运行时我才知道文件格式是什么。感谢您的全面回答,即使PDF工作,一个简单的JPG也失败了。与WKWebView相比,Android的内置(通过SDK或作为ASOP的一部分)对常见文件类型的支持似乎是一种令人遗憾的状况。@MattLacey:“对于Intent,我只是使用val I=Intent(Intent.ACTION_VIEW)”——这对任何事情都不起作用,因为您没有指定要查看的内容。“即使PDF工作在一个简单的JPG上也失败了”——讽刺的是,基本图像格式是为数不多的普遍支持的东西之一,这表明你的问题可能会因为你构建
意图
对象的方式而变得更加复杂。对不起,我只是想说,这就是我用来创建意图的东西。我正在使用文件提供程序指定内容URI,以及正确的MIME类型。对于Intent,我只使用
val I=Intent(Intent.ACTION\u视图)
,直到运行时我才知道文件格式是什么。感谢您的全面回答,即使PDF工作,一个简单的JPG也失败了。与WKWebView相比,Android的内置(通过SDK或作为ASOP的一部分)对常见文件类型的支持似乎是一种令人遗憾的状况。@MattLacey:“对于Intent,我只是使用val I=Intent(Intent.ACTION_VIEW)”——这对任何事情都不起作用,因为您没有指定要查看的内容。“即使PDF工作简单