Google Doc查看器不能在localhost上运行吗?

时间:2019-08-07 06:32:25

标签: android phpmyadmin google-document-viewer

我是android的新手。我试图通过本地主机的URL在Android应用程序的Google doc查看器中打开pdf文件。但是谷歌浏览器显示“没有可用的预览”,而URL在浏览器上运行良好。谷歌浏览器不能在本地主机url上工作还是出现错误??

Error

1 个答案:

答案 0 :(得分:0)

Google Doc查看器可用于在线可用的网站。 而是使用此方法:

导入库:

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_width="match_parent"
    android:layout_height="match_parent"/>

onCreate:

 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>