【问题标题】:Get absolute path to assets folder in PhoneGap获取PhoneGap中资产文件夹的绝对路径
【发布时间】:2023-03-15 18:46:01
【问题描述】:

有没有办法在 phonegap 资产文件夹中获取图像的绝对路径?

我需要使用 EmailComposer 插件在邮件中附加图像的绝对路径。

EmailComposer 插件需要这样的绝对路径:

 /storage/sdcard0/DCIM/Camera/20121124_125210.jpg

但我要附加的图像在我的资产文件夹中,路径如下:

file:///android_asset/www/img/logo.png

没用

【问题讨论】:

    标签: android cordova phonegap-plugins


    【解决方案1】:

    以防万一有人仍在寻找解决方案。现在,Cordova 实现了一种非常简单的方法来获取当前应用程序目录(在 Android、iOS 和 BlackBerry 10 上支持):

    cordova.file.applicationDirectory

    例如,如果您想访问您的 res/audio 目录(在您的 www 中)中的音频文件,您只需要这样写:

    cordova.file.applicationDirectory + 'res/audio/my-audio-file.mp3'

    Here 是完整的文档

    【讨论】:

    • 我相信你需要它是 cordova.file.applicationDirectory + 'www/' + 'res/audio/my-audio-file.mp3' 至少 iOS 对我来说是这样的.
    • 和@edhubbell一样,我也需要加www/
    • cordova.file.applicationDirectory 只为我返回一个例外(未定义)
    • @andreimarinescu 不要忘记安装文件插件:cordova plugin add cordova-plugin-file --save
    【解决方案2】:

    看起来这是不可能的。

    https://groups.google.com/forum/#!topic/phonegap/Sw2wThOYm8c

    根据 Simon 在该帖子中的回复,他说...

    “你不能做你想做的事。资产目录中的文件在技术上不在文件系统上,因此无法通过文件 API 访问它们。这意味着调用 window.resolveLocalFileSystemURI() 不会返回你一个 FileEntry。它正确返回错误代码 1,即 NOT_FOUND_ERR。"

    您需要文件的绝对路径才能使电子邮件附件插件正常工作。不幸的是,如果文件位于 assets 文件夹中,则无法使用 cordova 的文件 api 获取绝对路径。

    有一个插件可以将文件从您的资产文件夹中复制出来并将它们放到 sdcard 上。然后,您可以将此文件的确切位置传递给电子邮件附件插件。不幸的是,如果您打算使用较新的科尔多瓦版本,下面的插件似乎已经过时了。

    https://github.com/gkcgautam/Asset2SD

    【讨论】:

    • 我还不能评论其他人的答案,因为我没有足够的积分,但是幽灵的答案是不正确的。请参阅我上面的答案,以解释为什么它不正确。它可能适用于旧版本的 android 和 phonegap,但绝对不适用于 cordova/phonegap 2.0.0 +。不幸的是,此方法不适用于存储在 apk 中的文件。
    【解决方案3】:

    将 'file:///android_asset/www/img/logo.png' 传递给 window.resolveLocalFileSystemURI() ,得到的 FileEntry.fullPath 就是你想要的。 查看文档以获取详细示例: http://docs.phonegap.com/en/1.5.0/phonegap_file_file.md.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-29
      • 2016-08-10
      • 1970-01-01
      • 2012-02-22
      • 2014-05-19
      • 1970-01-01
      • 1970-01-01
      • 2020-11-26
      相关资源
      最近更新 更多