1

WebView を使用して特定の Web サイトをナビゲートする Android アプリを作成しています。問題は、ユーザーが Web サイトにある pdf、.xls、または .doc ドキュメントを表示できるようにすることです。

私はこのコードを持っていますが、pdf ファイルを表示する代わりに Android ブラウザーを開きます。

webView.setDownloadListener(new DownloadListener() {
    public void onDownloadStart(String url, String userAgent,
            String contentDisposition, String mimetype, long contentLength) {
        Uri uri = Uri.parse(url);
        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
        startActivity(intent);

    }
});

また、Google ドキュメント ビューアーを使用してみましたが、これも機能しません。リンクのhtmlが開きますが、ファイルは開きません! Web サイトでは、pdf のリンクに誘導されず、ダウンロードすることしかできません。そのため、Google doc ビューアーは機能しません。

Androidブラウザのようにファイルを開きたいです。ファイルをダウンロードしてから開きます。どうすればこれを達成できますか? Android ダウンロード マネージャーを使用することを考えましたが、ファイルをダウンロードして開き、ユーザーが閉じたときにそのファイルを削除するにはどうすればよいですか? 一時的な時間だけダウンロードしたいからです。

どんなアイデアでも大歓迎です。御時間ありがとうございます!

4

1 に答える 1

0

Uri.parse(url)最初にファイルをダウンロードする必要があります。これにより、通常はブラウザーに割り当てられている (したがって、その中で開く) Web サイトのアドレスが提供されるため、Android はそれらを開くための適切なアプリケーションを見つけることができます。

ファイルをダウンロードするには、DownloadManager-serviceを使用するか、独自のコードを記述してダウンロードします。ファイルを一時的な場所に置いたら、上記の方法を使用して開くことができます。

ユーザーがファイルを表示した後にファイルを削除したい場合、1つのアイデアはアクティビティでそれを行うことです-メソッドは、ユーザーonResume()がファイルの表示から戻ったときに呼び出されます(戻るボタンを使用)。

ただし、ファイルを内部キャッシュに入れて、時々消去したいと思います。Android 自体も少しハウスキーピングを行います。

デバイスの内部ストレージ容量が少なくなると、Android はこれらのキャッシュ ファイルを削除して容量を回復することがあります。ただし、これらのファイルのクリーンアップをシステムに任せるべきではありません。キャッシュ ファイルは常に自分で管理し、消費されるスペースの妥当な制限 (1 MB など) 内にとどめる必要があります。ユーザーがアプリケーションをアンインストールすると、これらのファイルは削除されます。

于 2013-05-07T21:37:18.140 に答える