我是一名 iOS 开发人员,但也负责更新我们公司的 android 应用程序(所以我几乎没有 android 经验) android 应用程序当前从 raw 加载 PDF,然后将它们显示在另一个也安装在 android 上的 pdf 阅读器应用程序中......但是我想改为从互联网上获取 pdf。
这是用于显示本地存储的 pdf 的代码。
if (mExternalStorageAvailable==true && mExternalStorageWriteable==true)
{
// Create a path where we will place our private file on external
// storage.
Context context1 = getApplicationContext();
File file = new File(context1.getExternalFilesDir(null).toString() + "/pdf.pdf");
URL url = new URL("https://myurl/pdf.pdf");
URLConnection urlConnection = url.openConnection();
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
OutputStream os = new FileOutputStream(file);
try {
byte[] data = new byte[in.available()];
in.read(data);
os.write(data);
Uri path = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(path, "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
} catch (IOException e) {
// Unable to create file, likely because external storage is
// not currently mounted.
Log.w("ExternalStorage", "Error writing " + file, e);
Context context2 = getApplicationContext();
CharSequence text1 = "PDF File NOT Saved";
int duration1 = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context2, text1, duration1);
toast.show();
} finally {
in.close();
os.close();
}
}
最终,pdf 将来自一个网站,并且该网站需要在下载 PDF 之前向其发送 HTML 发布请求。我想我将能够弄清楚 HTML 帖子,但现在我如何从互联网上下载 PDF 并显示它。我尝试将 URI 更改为指向该位置,但这不起作用,或者我的结构不正确。
另外请记住,出于安全原因,我不想使用 google viewer 和 webview 显示此内容