1

我必须在我的应用程序中显示来自远程 URL 链接的不同类型的文档。我在这样的网络视图中使用了 Google Doc

    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>

加载后从谷歌文档获得此响应。

在此处输入图像描述

.docx 格式的小于 2MB 的文件正在加载一些小于 2MB 的文件也没有加载。这是什么问题?是文件大小问题还是文件错误。因为文件在 Google Doc 在线编辑器和 Microsoft Word 中都能正常工作。任何帮助将不胜感激。

4

4 回答 4

2

经过一番努力,我到达了这个链接,他们在其中提到了“Office Web Apps Viewer”一个用于文件扩展名的在线应用程序,例如('.ppt''.pptx''.doc','.docx','.xls' , '.xlsx') 你只需要在你的 webview 中提供在线文档链接

http://view.officeapps.live.com/op/view.aspx?src=[OFFICE_FILE_URL]

谷歌在线文档查看应用程序没有为我正确处理 DOC 和 DOCX 文件,并给出了我提到的上述错误。但是在使用 Office Live 应用程序进行 Office 文件扩展后,一切正常。

于 2016-08-04T03:35:46.770 回答
0

正如WebView中所讨论的,在 using 中loadDataWithBaseURL,WebView 可以访问本地设备文件(通过“文件”方案 URL)

仅当 baseUrl 指定除“http”、“https”、“ftp”、“ftps”、“about”或“javascript”之外的方案时。

但是,据我所知,WebView 目前不支持显示办公文档。如果您的目标只是显示一些 HTML 作为 UI 的一部分,那么这可能没问题。

请检查此 SO 帖子中的解决方案 - Android 如何打开 .doc 扩展文件和 GitHub 中的此帖子 - AndroidDocxToHtml可能会有所帮助。

于 2016-08-03T16:20:21.677 回答
0

用这个:

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");
于 2019-01-16T18:10:06.190 回答
0

只需添加

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 是您的文件可用的变量。

于 2019-03-31T11:04:24.567 回答