gpt4 book ai didi

android - 在 Ionic/Angular 中显示从 API 下载的 PDF

转载 作者:行者123 更新时间:2023-11-29 20:12:56 24 4
gpt4 key购买 nike

我需要点击一个 API 端点,它返回一个 pdf 文件(不是 pdf 的 url,而是实际数据),然后以某种方式在我的 ionic 应用程序中显示这个 pdf。理想情况下,我只想将它提供给其他一些应用程序,例如手机的移动网络浏览器,但我也愿意尝试将它嵌入我的应用程序中。在 iOS 上,我只使用 $window.open(url) 并且移动 safari 知道下载并显示返回的 pdf。但是,Android 尝试下载该文件,然后在我尝试打开它时告诉我它无法打开。

我还尝试使用 <embed> 将其嵌入到应用程序中但没有任何东西被嵌入。然而,类似的方法适用于 <img ng-src="url"> 中的图像。 .

我也曾尝试过使用 cordova FileOpener2,但我在使用它时遇到了很多麻烦。如果这是执行此操作的正确方法,我愿意重新访问该方法。

我得到的最接近的肯定是将它发送到设备的移动浏览器,因为它在 iOS 上完美运行。

最佳答案

我使用 filetransfer 和 fileopener2 解决了这个问题。我的代码如下。我遇到的主要问题是没有 <access origin="cdvfile://*" />在我的 config.xml 文件中并且没有正确安装 ngCordova。

if (ionic.Platform.isIOS())
$window.open(APIUrl, '_blank', 'location=no');
else if (ionic.Platform.isAndroid()) {

var fileExtension = filename.substr(filename.lastIndexOf('.')+1);

//I have a dictionary with this somewhere else
var MIMEType = extToMime[fileExtension];


var uri = encodeURI(APIurl);
var fileURL = "cdvfile://localhost/persistent/file."+fileExtension;

$cordovaFileTransfer.download(uri, fileURL, {}, true)
.then(function(result) {
$cordovaFileOpener2.open(
fileURL,
MIMEType
).then(function() {
console.log("SUCCESS");
}, function(e) {
console.log("ERROR");
console.log(JSON.stringify(e));
});
}, function(e) {
console.log("Error: " + JSON.stringify(e));
});
}

关于android - 在 Ionic/Angular 中显示从 API 下载的 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34497092/

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