通过Web服务在Cordova应用程序中打开PDF文件



我有一个Cordova应用程序,该应用使用C#WebService与SQL数据库进行通信。这很棒。我的问题是,我在服务器上有一些PDF文档,并在数据库中保存了本地filepath,我需要在应用程序中打开这些文件。

我在文档具有可以达到的URL之前做了类似的事情,因此它们只是打开,但是在这种情况下,没有外部访问该文件。

所以我的问题是....我如何最好地将文件从服务器到应用程序打开?

我不需要将文件存储在设备上,只需打开它以便可以读取。

如果有人可以朝着正确的方向引导我,我真的很感激,因为我不知道要实现我追求的最佳方法。

*****更新******

是的,我认为我没有一百万英里,但感觉我在做一些根本上错误的事情。

我正在使用:

创建一个字节[]
byte[] bytes = System.IO.File.ReadAllBytes(filepath);

产生非常长的字符串。

在应用程序中,我正在获取该字符串,并使用以下内容将其重新构造为文件:

var bytes = new Uint8Array(data);
saveByteArray("mytest.txt", data); 

        function base64ToArrayBuffer(base64) {
            var binaryString = window.atob(base64);
            var binaryLen = binaryString.length;
            var bytes = new Uint8Array(binaryLen);
            for (var i = 0; i < binaryLen; i++) {
            var ascii = binaryString.charCodeAt(i);
            bytes[i] = ascii;
            }
            return bytes;
        }
        function saveByteArray(reportName, byte) {
            var blob = new Blob([byte], {type: "application/txt"});
            var link = document.createElement('a');
            link.href = window.URL.createObjectURL(blob);
            var fileName = reportName;
            link.download = fileName;
            link.click();
        }

这将创建一个空文件或损坏的文件。

有人可以帮忙吗?一双新鲜的眼睛会很感激。

谢谢

您可以做的是在C#WebService后端中创建一个新的端点,从此端点下载文件,以本地存储并从应用程序显示。

在端点后面,它将使用数据库中的文件位置,并将文件内容从存储PDF的流中获取。该数据流将作为一个字节数组放置在JSON结果对象中。最后,您的应用必须获得此JSON对象,然后从字节和文件名中构建PDF文件。

希望它有帮助。

相关内容

  • 没有找到相关文章

最新更新