基本的に、ユーザーがアプリに提供するデータからレポートを生成したいと考えています。最初に考えたのは、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でさえ、何もレンダリングされません。
他に試すことができるものはありますか、または一般的な提案はありますか? 前もって感謝します