在Xamarin Android中,如何在没有外部应用程序的情况下从设备打开和显示文档(.pdf、.doc、docx)?

在Xamarin Android中,如何在没有外部应用程序的情况下从设备打开和显示文档(.pdf、.doc、docx)?,pdf,xamarin.forms,xamarin.android,doc,Pdf,Xamarin.forms,Xamarin.android,Doc,我使用的是Xamarin Forms 2.4版 从设备显示文档(.pdf、.doc、docx)时出现问题 你能和我分享一下如何实现Android在没有外部应用程序的情况下以脱机模式显示文档吗?默认情况下,Xamarin.Forms不支持这一点。您必须编写自己的组件来呈现想要支持的每种格式,或者找到一个已经这样做的控件 我知道有一个解决办法 您可以尝试的另一件事是在浏览器控件中打开文件。也许他们可以渲染其中的一些内容,但这更像是一种猜测。我建议您最好使用Google Docs viewer在网络视

我使用的是Xamarin Forms 2.4版

从设备显示文档(.pdf、.doc、docx)时出现问题


你能和我分享一下如何实现Android在没有外部应用程序的情况下以脱机模式显示文档吗?

默认情况下,Xamarin.Forms不支持这一点。您必须编写自己的组件来呈现想要支持的每种格式,或者找到一个已经这样做的控件

我知道有一个解决办法


您可以尝试的另一件事是在浏览器控件中打开文件。也许他们可以渲染其中的一些内容,但这更像是一种猜测。

我建议您最好使用Google Docs viewer在网络视图中进行渲染

public class PdfWebViewClient : WebViewClient   {                       
public override bool ShouldOverrideUrlLoading(WebView view, string url)                         
{         return true;      }                       }   
private WebView pdfViewr;   
/// //You should put the below code where you initialize your Views/Controls     
//Probably OnCreate or OnCreateView /// pdfViewr = 
 view.FindViewById<WebView>(Resource.Id.pdfViewer);  
pdfViewr.Settings.AllowFileAccess = true;    
pdfViewr.Settings.JavaScriptEnabled = true;  
pdfViewr.Settings.BuiltInZoomControls = true;    
pdfViewr.Settings.SetPluginState(WebSettings.PluginState.On);            
 //pdfViewr.SetWebViewClient = new AsyncCallback             
pdfViewr.SetWebViewClient(new PDFWebViewClient());                                   
var link = "your_document_path";  
pdfViewr.LoadUrl("http://docs.google.com/gview?embedded=true&url=" + link);
公共类PdfWebViewClient:WebViewClient{
公共重写bool ShouldOverrideUrlLoading(WebView视图,字符串url)
{返回true;}}
私有网络视图pdfViewr;
/////您应该将下面的代码放在初始化视图/控件的位置
//可能是OnCreate或OnCreateView///pdfViewr=
view.findviewbyd(Resource.Id.pdfViewer);
pdfViewr.Settings.AllowFileAccess=true;
pdfViewr.Settings.JavaScriptEnabled=true;
pdfViewr.Settings.BuiltInZoomControls=真;
pdfViewr.Settings.SetPluginState(WebSettings.PluginState.On);
//pdfViewr.SetWebViewClient=新建异步回调
SetWebViewClient(新的PDFWebViewClient());
var link=“您的文档路径”;
pdfViewr.LoadUrl(“http://docs.google.com/gview?embedded=true&url=“+链接);
我最近在PDF中使用了它,但我很确定其他文档也可以使用


以防它无法恢复。

您需要为这些文档类型编写自己的渲染引擎,或者找到一个库或工具来为您执行此操作。谢谢!如果我使用谷歌文档查看器,该设备必须在互联网上联机。但我想以脱机模式显示文档。我找到了在XamarinAndroid上显示.pdf文件的解决方案。到目前为止,我在Xamarin Android上显示doc、docx文件时仍然存在问题。你能给我看看解决办法吗?谢谢。我不想在项目中使用第三方组件。到目前为止,我在Xamarin Android上显示doc、docx文件时仍然存在问题。你能给我一些解决办法吗?