gpt4 book ai didi

Cordova/PhoneGap 打开下载的文件 (InAppBrowser)

转载 作者:行者123 更新时间:2023-12-04 01:56:51 28 4
gpt4 key购买 nike

使用 Cordova/PhoneGap 3.3.0,我正在使用 FileTransfer 插件下载文件,然后尝试使用 InAppBrowser 插件打开它。 我可以成功下载文件 ,并将其放在临时目录中。由于文件插件现在使用 URL 模式,我无法弄清楚如何将正确的 url/路径传递给 window.open InAppBrowser 插件的方法。我也找不到任何相关文件。我能找到的所有“下载和打开”文档都已过时并且是预 URL 模式。

相关链接:

  • Cordova Release info on New Plugin Versions
  • The readme for the FileTransfer plugin
  • The readme for the InAppBrowser plugin
  • How to open local file with InAppBrowser with recent changes to URL scheme in File plugin - 类似问题

  • 我发现过时的例子:
  • File-transfer download file issue on Cordova 3.1 - 这个用户降级到早期版本,因为他们无法弄清楚
  • https://gist.github.com/devgeeks/4982983 - 此示例使用 entry.fullPath ,现在已弃用,取而代之的是 toURL()

  • 这是我的代码:
    var uri = encodeURI("http://some.url/file.pdf");
    window.requestFileSystem(LocalFileSystem.TEMPORARY, 0,
    function (fileSystem) {
    var fileTransfer = new FileTransfer();
    var filename = fileSystem.root.toURL() + uri.substr(uri.lastIndexOf("/") + 1);
    fileTransfer.download(uri, filename,
    function(entry) { // download success
    var path = entry.toURL(); //**THIS IS WHAT I NEED**
    window.open(path, "_system");
    },
    function(error) {} // irrelevant download error
    );
    },
    function(error) {} // irrelevant request fileSystem error
    );

    我目前正在 Nexus 7 和 Nexus 5 上的 Android 中进行测试。InAppBrowser 正确打开了默认的 pdf 启动器(在我的情况下为 Adob​​e Reader),但随后出现“文档路径无效”错误。

    [更新:显示返回值]

    我已经为文件路径尝试了以下所有组合:
    var path = entry.toURL(); // "cdvfile://localhost/temporary/file.pdf"
    var path = entry.fullPath; // "file.pdf"
    var path = fileSystem.root.toURL() + filename; // "cdvfile://localhost/temporary/file.pdf"
    var path = fileSystem.root.fullPath + filename; // "/file.pdf"

    最佳答案

    自 Cordova 3.4 以来,文件协议(protocol)发生了变化,现在它们不再使用 fullPath,而是提供了返回 cdvfile://path/to/your/file.ext 路径的 toURL()。

    因此,当您使用文件系统对象的回调(使用 entry 参数)下载文件时,只需调用 entry.toURL() 并使用以下语句将其打开 - 假设您安装了 InApBrowser 并且 _blank 将打开 InAppBrowser 的窗口:

    window.open(entry.toURL(), '_blank', 'location=no,closebuttoncaption=Close,enableViewportScale=yes');  

    我在 this post 中写过它在我的博客上(如果你想要所有的引用资料和背景信息)。

    关于Cordova/PhoneGap 打开下载的文件 (InAppBrowser),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21941731/

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