最初に「ダウンロード」せずにAndroidWebブラウザを介してPDFを表示する方法


88

ファイルをダウンロードしてからユーザーにダウンロードアプリまたは通知バーからファイルを開かせるプロセスを経ることなく、ストックAndroidブラウザーでPDF、Word、またはその他の一般的なファイルを自動開く方法はありますか? ?

含めたいドキュメントがたくさんあり、HTMLに変換する必要がないWebアプリケーションがありますが、ユーザーにファイルをダウンロードして手動で開かせることは、ユーザーをトレーニングするのは簡単ではありません。

iOSでは、これらのファイルはすべてブラウザにインラインで表示されます。ブラウザでファイルをAcrobatReaderやQuickOffice、またはユーザーが表示する必要のあるプログラムに自動起動する方法が欲しいのですが。

誰かがそれをする方法を知っていますか?GoogleドキュメントにはPDFの表示がサポートされていることは知っていますが、ウェブアプリを使用しているユーザーは、すべての場合にパブリックインターネットにアクセスできるとは限らず、ローカルのウェブサーバーにアクセスしている可能性があります。


1
私はそれがそのように機能するのを見たことがありません。そうは言っても、PDFファイルをデコードして適切に表示できる独自のブラウザを作成できると思います。人気のあるブラウザのどれもこれをサポートしているとは思わない。
FoamyGuy 2011

PDFファイルは「FastWebView」用に最適化されていますか?そうでない場合は、ダウンロードの進行中は表示できません。したがって、ダウンロードして表示することしかできません。
ロバート

回答:


66

次のURLにURLを追加すると、GoogleドキュメントビューアでPDFを開くことができます。

http://docs.google.com/gview?embedded=true&url=<url of a supported doc>

これにより、PDFがデフォルトのブラウザまたはWebViewで開きます。

サポートされている形式のリストをここに示します


4
これはとても役に立ちました、ありがとう。100%必要かどうかはわかりませんが、<サポートされているドキュメントのURL>をurlencodedする必要があることは言及する価値があります。
mason81 2012年

1
これは私には機能しません...ダウンロードボタンで「おっと!このドキュメントのプレビューに問題がありました」というページが表示されるだけです。ダウンロードボタンをクリックしても何も起こりません。
Lee Yi Hong

25
上記のリンクはAndroid上のChromeで機能しませんでした。切り替えてhttps://drive.google.com/viewerng/viewer?embedded=true&url=####、それでうまくいきました。
qFDev 2015年

2
こんにちは、回答のURLが機能しなくなったようです。webViewリスナーで無限ループが発生します。QFDevからのコメントに投稿されたURLは機能しています。
Gene Bo

正しく思い出せば、これでもドキュメントがtempandroidディレクトリに保存されます。
Jean-Paul


4

具体的には、Firefox用のpdf.jsプラグインをインストールするには、アプリストアを使用しません。代わりに、mozilla内からaddons.mozilla.orgにアクセスし、そこからインストールしてください。また、正しくインストールされているかどうかを確認するには、[ツール]:[アドオン]メニューに移動します(デスクトップバージョンから考えられるような「about:plugins」URLではありません)。

(新しいアカウント、そうでなければ私はこれを上記の答えへのコメントとして置きます)


4
String format = "https://drive.google.com/viewerng/viewer?embedded=true&url=%s";
String fullPath = String.format(Locale.ENGLISH, format, "PDF_URL_HERE");
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(fullPath));
startActivity(browserIntent);

3

私もこれが必要でしたが、上記のリンクが機能しなくなったので、これが新しいGoogleドライブで機能することがわかりました。

Googleには、PDFがGDriveにないためのリンクを作成するサービスがあります:https://docs.google.com/viewer URLを追加するだけで、リンクとIFrameコードが作成されます(よく見ると、パターンが表示され、リンクが作成されます)このWebサービスなし)

また、Googleドライブに保存されているPDFに対してこれを行う方法があります:https//docs.google.com/viewer?srcid = YOUR_GDRIVE_PDF_DOC_ID_HERE&pid = explorer&efh = false& a = v&chrome = false&embedded = true(これはリンクまたはsrcの場合がありますiframeのURL)

私はAndroidでテストしましたが、PDFビューアがうまく表示されます。


私の場合、現在Googleアカウントでサインインしていない場合は、ログインページに移動します。これをバイパスしてPDFを表示する方法はありますか?
h_k 2014

Viewerjs.orgを使用してみてください 。viewer.jsファイルはブラウザに依存せず、サーバーに依存して手間のかかる作業を行うため、有望に見えます。
user1493559 2016

2

残念ながら、Androidデバイスに存在するネイティブブラウザは、このタイプのファイルをサポートしていません。4.0でそれができるかどうか見てみましょう。


2

あなたはこれを使うことができます

webView.loadUrl("https://docs.google.com/viewer?url=" + "url of pdf file"); 

誰でも反対票を投じた理由を教えてください。
Akash Bisariya 2017年


@akash多分あなたはもっと説明を追加する必要があります。それがここのルールだ
huzain07

2
  Try this, worked for me.

    WebView view = (WebView) findViewById(R.id.yourWebView);

    view.getSettings().setJavaScriptEnabled(true);
    view.getSettings().setPluginState(WebSettings.PluginState.ON);
    view.loadUrl("http://docs.google.com/gview?embedded=true&url="
                  +"your document link(pdf,doc,docx...etc)");

setPluginState ONは重要です、それについて言及してくれてありがとう
Beeing Jk 2018

@BeeingJksetPluginStateは、API 18(stackoverflow.com/questions/19362049/…)から非推奨になりました。
CoolMind 2018年

@CoolMindは、リンクで示したものではsetPluginsEnabledなく、setPluginState
Beeing Jk 2018

@BeeingJk、もう一度ページを開いて、Ctrl + Fを押し、「setPluginState」と入力して、Enterキーを押してください。
CoolMind 2018年

@CoolMind OKおかげで私はまた、ここではそれを見たdeveloper.android.com/reference/android/webkit/...が、私は削除できませんでしたsetPluginState他に、私のWebViewの意志ではない仕事
beeingてJkの

0
public class MainActivity extends AppCompatActivity {

    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openURL("http://docs.google.com/viewer?url=" + " your pdf link ");
            }
        });
    }

    private void openURL(String s) {
        Uri uri = Uri.parse(s);
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(uri,"text/html");
        startActivity(intent);
    }
}

-4
  • アンドロイド用のアクロバットリーダー.apkファイルをダウンロードしてPDFファイルを表示
  • あなたのPDFファイルをSDカードに入れてください
  • 以下のコードスニペットを使用してください

    File file= new File("/sdcard/test.pdf");
    Uri path=Uri.fromFile(file);
    Intent i =new Intent(Intent.ACTION_VIEW);
    i.setDataAndType(path,"application/pdf");
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(i);
    

4
これは、ネイティブのAndroidアプリケーションではなく、Webブラウザ用です。-1
ryandawkins 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.