gpt4 book ai didi

javascript - 在 HTML5/Javascript 移动应用程序中下载 PDF 文件

转载 作者:行者123 更新时间:2023-12-01 22:58:15 25 4
gpt4 key购买 nike

我需要创建允许用户从我的基于 HTML5/JavaScript 的移动应用程序下载 PDF 文件的功能。我将获取 PDF 文件作为 Base 64 编码字节流。如何允许用户在单击页面中的按钮后将 PDF 下载到他们的设备?

最佳答案

对于 IOS:您可以在 iPhone 应用程序上下载 pdf 并将其显示在 WebView 中。这个(链接的)问题列出了一些方法。您还可以在那里找到如何将 pdf 放入运行应用程序的设备/iPhone 的文件夹中:How to download PDF and store it locally on iPhone?

let request = URLRequest(url:  URL(string: "http://www.msy.com.au/Parts/PARTS.pdf")!)
let config = URLSessionConfiguration.default
let session = URLSession(configuration: config)
let task = session.dataTask(with: request, completionHandler: {(data, response, error) in
if error == nil{
if let pdfData = data {
let pathURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].appendingPathComponent("\(filename).pdf")
do {
try pdfData.write(to: pathURL, options: .atomic)
}catch{
print("Error while writting")
}

DispatchQueue.main.async {
self.webView.delegate = self
self.webView.scalesPageToFit = true
self.webView.loadRequest(URLRequest(url: pathURL))
}
}
}else{
print(error?.localizedDescription ?? "")
}
}); task.resume()

对于安卓:有很多方法可以为 Android 做到这一点。这个在大多数情况下应该可以正常工作,没有任何问题:

 URL u = new URL("http://www.path.to/a.pdf");
//open a connection
HttpURLConnection c = (HttpURLConnection) u.openConnection();
c.setRequestMethod("GET");
c.setDoOutput(true);
c.connect();
FileOutputStream f = new FileOutputStream(new File(root,"file.pdf"));
//read the file
InputStream in = c.getInputStream();

byte[] buffer = new byte[1024];
int len1 = 0;
while ( (len1 = in.read(buffer)) > 0 ) {
f.write(buffer,0, len1);
}
f.close();

另一个单行选项可以在 android 中下载 pdf,但似乎有不同的行为,具体取决于设备和其他已安装的应用程序(pdf 阅读器):

`startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("path/filename.pdf")));`

我使用了这个问题,它的回复是为了得到一个有效的代码示例。您可以在帖子底部找到一个很长的答案,其中包含许多不同的用例及其在同一篇帖子中解释的解决方案。:How to download a pdf file in Android?

关于javascript - 在 HTML5/Javascript 移动应用程序中下载 PDF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12308904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com