使用google文档在android web视图中显示.DOCX文件时出错
我必须在我的应用程序中显示来自远程URL链接的不同类型的文档。我在这样的网络视图中使用过谷歌文档使用google文档在android web视图中显示.DOCX文件时出错,android,google-docs,google-docs-api,google-document-viewer,Android,Google Docs,Google Docs Api,Google Document Viewer,我必须在我的应用程序中显示来自远程URL链接的不同类型的文档。我在这样的网络视图中使用过谷歌文档 private WebView mWvHome = (WebView) view.findViewById(R.id.wv_home); mWvHome.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress)
private WebView mWvHome = (WebView) view.findViewById(R.id.wv_home);
mWvHome.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
}
});
mWvHome.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return false;
}
@Override
public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) {
}
});
mWvHome.getSettings().setJavaScriptEnabled(true); // enable javascript
//Pasting a Fixed URL link to the file I am getting this Error.
mWvHome.loadUrl("http://docs.google.com/gview?embedded=true&url=http://followitdc.cloudapp.net/FollowitMediaAPIv4/images/bb629006-d930-4fbe-b9ec-91895dc5133c.docx");
这是我的布局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
<ProgressBar
android:id="@+id/progress"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="@dimen/margin_normal"
android:layout_alignParentTop="true"
android:max="100"
android:progress="0"
android:progressDrawable="@drawable/custom_progressbar"
android:visibility="visible" />
<WebView
android:id="@+id/wv_home"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/progress" />
<RelativeLayout
android:id="@+id/rl_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/progress"
android:background="@color/white">
<ProgressBar
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
</RelativeLayout>
加载后,从google文档获取此响应
正在加载.docx格式中大小小于2MB的文件。一些小于2MB的文件也未加载。这是什么问题?是文件大小问题还是文件中存在错误。因为该文件在谷歌文档在线编辑器和微软Word上都能正常工作。欢迎提供任何帮助。如中所述,在使用loadDataWithBaseURL
时,WebView可以访问本地设备文件(通过“文件”方案URL)
仅当baseUrl指定的方案不是“http”、“https”、“ftp”、“ftps”、“about”或“javascript”时
但是,据我所知,WebView目前不支持显示office文档。如果您的目标只是将一些HTML显示为UI的一部分,那么这可能很好
请检查这篇SO帖子中的解决方案,以及GitHub中的这篇帖子,这可能会有所帮助。经过一些努力,我发现他们提到了“Office Web Apps Viewer”,这是一个文件扩展名为('.ppt'.pptx'.doc'、'.docx'、'.xls'、'.xlsx')的在线应用程序,您只需要在webview中提供在线文档链接 谷歌在线文档视图应用程序没有为我正确处理文档和DOCX文件,并给出了我提到的上述错误。但在使用Office live app作为Office文件扩展名后,一切正常。使用以下方法:
String fileUrl = "https://cs.wmich.edu/elise/courses/cs526/Android-tutorial.docx";
WebView personalWebView = findViewById(R.id.personalWebView);
personalWebView.getSettings().setJavaScriptEnabled(true);
personalWebView.loadUrl("https://drive.google.com/gview?embedded=true&url=" + fileUrl);
或者这个:
String fileUrl = "https://cs.wmich.edu/elise/courses/cs526/Android-tutorial.docx";
String doc="<iframe src='http://docs.google.com/gview?embedded=true&url="+fileUrl+"' width='100%' height='100%' style='border: none;'></iframe>";
WebView personalWebView = findViewById(R.id.personalWebView);
personalWebView.getSettings().setJavaScriptEnabled(true);
personalWebView.loadData( doc , "text/html", "UTF-8");
stringfileurl=”https://cs.wmich.edu/elise/courses/cs526/Android-tutorial.docx";
字符串doc=”“;
WebView personalWebView=findviewbyd(R.id.personalWebView);
personalWebView.getSettings().setJavaScriptEnabled(true);
加载数据(doc,“text/html”,“UTF-8”);
只需添加
url=url.replaceAll(" ","%20");
String newUA= "Chrome/43.0.2357.65 ";
webView.getSettings().setUserAgentString(newUA);
webView.loadUrl("https://view.officeapps.live.com/op/view.aspx?src="+url);
此处url是文件可用的变量。这在某些android设备中不起作用。如果您让后端团队告诉他们提供一个链接来读取文档文件,我该怎么做@mathani来修复它。这样会更好。我也为我的申请做了同样的事情。他们实际上提供了一个阅读链接。我将此读取链接转换为在GoogleDoc视图中显示,这样我就不必仅使用已构建的组件来呈现文件。你如何使用阅读链接?例如使用任何库或显示文档的内容。我必须阅读PDF、DOC、DOCX和谷歌文档支持的其他文件类型。任何help@MathaNI都使用了docs.google.com/gview?embedded=true&url链接,但它不起作用。所以后端团队已经创建了一个web应用程序。我在WebView中使用了该应用程序来阅读文档链接。这和谷歌文档阅读器一样,你能用textview@Teyam来加载rtf内容吗?