2

基本的に、ユーザーがアプリに提供するデータからレポートを生成したいと考えています。最初に考えたのは、PDF ファイルを生成することでした。唯一の無料ライブラリはテキスト ラッピングなどの機能をサポートしていませんが、有料ライブラリのライセンスは最大 1000 ドルかかるため、これは実行不可能であることが判明しました。

したがって、すべてのコンテンツを含む html ファイルを生成しました。このファイルをデスクトップ Chrome で開くと、正常にレンダリングされます。ユーザーが共有ボタンをクリックすると、アプリはインテントを起動して、既定のブラウザーまたはモバイル Chrome で html ファイルを開く必要があります。

インテントを介してブラウザーで URL を開く方法を知っています。問題はファイルを開くことです。HTML ファイルは FileProvider を介してアクセスされています (つまり、uri の例: "content://[package].fileprovider/[filename].html")。インテントを実行myIntent.setData(htmlFileUri);して起動すると、ダイアログにブラウザーは表示されず、テキスト エディターのみが表示されます。を使っても同じですsetDataAndType

次に、Data Uri: を試しましたdata:text/html;base64,[html as base64]。繰り返しますが、この文字列をデスクトップ Chrome にコピーすると、問題なく動作します。ただし、この uri でインテントを開始すると、

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=data:text/html;base64,[base64]== typ=text/html }.

最後にhttp://、データ URI の先頭に追加すると、chrome またはデフォルト ブラウザを開くオプションが表示されます。私がそうすると、ページのURLでさえ、何もレンダリングされません。

他に試すことができるものはありますか、または一般的な提案はありますか? 前もって感謝します

4

1 に答える 1