谷歌文档查看器不能在本地主机上工作吗?

Posted

技术标签:

【中文标题】谷歌文档查看器不能在本地主机上工作吗?【英文标题】:Is Google Doc viewer can't work on localhost? 【发布时间】:2019-12-14 17:26:31 【问题描述】:

我是安卓新手。我试图通过来自本地主机的 url 在 android 应用程序的 Google 文档查看器中打开 pdf 文件。但是谷歌查看器显示“没有可用的预览”,而 url 在浏览器上工作正常。 google viewer 无法在 localhost url 上工作还是有错误。?

【问题讨论】:

不,Google 文档查看器可以与在线可用的网站配合使用。您需要为您的本地主机找到另一个解决方案 【参考方案1】:

Google Doc viewer 可与在线可用的网站配合使用。 而是使用这种方法:

导入库:

implementation 'com.github.barteksc:android-pdf-viewer:2.8.2' implementation 'com.github.kk121:File-Loader:1.2' implementation 'com.karumi:dexter:5.0.0'

allprojects 
repositories 
    maven url "https://jitpack.io"

在 main.xml 中:

<com.github.barteksc.pdfviewer.PDFView
    android:id="@+id/pdf_viewer"
    android:layout_
    android:layout_/>

创建:

 Dexter.withActivity(this)
            .withPermissions(Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE)
            .withListener(new BaseMultiplePermissionsListener()
                @Override
                public void onPermissionsChecked(MultiplePermissionsReport report) 
                    super.onPermissionsChecked(report);
                

                @Override
                public void onPermissionRationaleShouldBeShown(List<PermissionRequest> permissions, PermissionToken token) 
                    super.onPermissionRationaleShouldBeShown(permissions, token);
                
            ).check();

    pdfView = (PDFView) findViewById(R.id.pdf_viewer);


    FileLoader.with(this)
            .load(url)
            .fromDirectory("PDFFiles",FileLoader.DIR_EXTERNAL_PUBLIC)
            .asFile(new FileRequestListener<File>() 
                @Override
                public void onLoad(FileLoadRequest request, FileResponse<File> response) 

                    File pdfFile = response.getBody();

                    pdfView.fromFile(pdfFile)
                            .password(null).defaultPage(0).enableSwipe(true).swipeHorizontal(false)
                            .enableDoubletap(true).onDraw(new OnDrawListener() 
                        @Override
                        public void onLayerDrawn(Canvas canvas, float pageWidth, float pageHeight, int displayedPage) 
                            //code if require
                        
                    )
                            .onDrawAll(new OnDrawListener() 
                                @Override
                                public void onLayerDrawn(Canvas canvas, float pageWidth, float pageHeight, int displayedPage) 
                                    //code if require
                                
                            )
                            .onPageError(new OnPageErrorListener() 
                                @Override
                                public void onPageError(int page, Throwable t) 
                                    Toast.makeText(getApplicationContext(),"Error Occur ",Toast.LENGTH_LONG).show();
                                
                            )
                            .onPageChange(new OnPageChangeListener() 
                                @Override
                                public void onPageChanged(int page, int pageCount) 
                                    //code if require
                                
                            )
                            .onTap(new OnTapListener() 
                                @Override
                                public boolean onTap(MotionEvent e) 
                                    return true;
                                
                            )
                            .onRender(new OnRenderListener() 
                                @Override
                                public void onInitiallyRendered(int nbPages, float pageWidth, float pageHeight) 
                                    pdfView.fitToWidth();
                                
                            )
                            .enableAnnotationRendering(true)
                            .invalidPageColor(Color.WHITE)
                            .load();
                

                @Override
                public void onError(FileLoadRequest request, Throwable t) 
                    Toast.makeText(getApplicationContext(),""+t.getMessage(),Toast.LENGTH_LONG).show();
                
            );

在 AndroidManifest.xml 中:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:usesCleartextTraffic="true"> </application>

【讨论】:

它是否也适用于 MS Office 文档?能否请您为 Angular 提供类似的 sn-ps?

以上是关于谷歌文档查看器不能在本地主机上工作吗?的主要内容,如果未能解决你的问题,请参考以下文章

谷歌文档查看器返回 204 响应,不再工作,替代方案?

带有谷歌地图扩展的伪造查看器

无法访问本地主机上的 API 资源管理器

项目不会反映本地主机上的更改

谷歌文档如何在不使用 Flash 查看器的情况下显示我的 .PPT 文件?

我们可以在伪造查看器中添加一次选择多个标记的功能吗