阅读 Android 扩展文件 - PhoneGap 构建

Posted

技术标签:

【中文标题】阅读 Android 扩展文件 - PhoneGap 构建【英文标题】:Read Android Expansion File - PhoneGap Build 【发布时间】:2018-09-08 20:44:01 【问题描述】:

我想要一种在 Cordova 中访问我的扩展文件的方法。

问题是我听大多数人推荐的插件;

https://github.com/agamemnus/cordova-plugin-xapkreader

需要更多的努力才能使其工作,即修改样板 Cordova 文件。我无法使用 PhoneGap Build 查看或访问这些文件,因为它会一次性生成这些文件以及我的 www 文件并将其编译为 apk。

有没有办法让这个插件与 PhoneGap Build 一起工作,如果没有,有没有我可以使用的替代方案?

【问题讨论】:

【参考方案1】:

我终于明白了。我会在这里为可能遇到与我相同问题的任何人留下答案。

所以这个插件:https://github.com/agamemnus/cordova-plugin-xapkreader

在 Phonegap Build 中运行良好。问题实际上在于我试图正确设置它的方法。正确的步骤如下:

在您的 root/config.xml 文件中,添加以下内容:

<plugin name="com.flyingsoftgames.xapkeader" spec="https://github.com/agamemnus/cordova-plugin-xapkreader.git#cordova-6.5.0">
    <variable name="XAPK_EXPANSION_AUTHORITY" value="YOUR_APP_NAME" />
    <variable name="XAPK_PUBLIC_KEY" value="YOUR_GOOGLE_KEY"/>
</plugin>

无论您希望文件在何处访问 apk 扩展文件,请使用以下语法:

content://YOUR_APP_NAME/path/to/file.jpg

这在文档中相当清楚,但值得注意的是您正确设置了路径。网上很多教程都会让你写这样的:

content://YOUR_APP_NAME/main_expansion/path/to/file.jpg

这让我相信路径的 ma​​in_expansion 部分是用于插件访问主扩展文件而不是补丁扩展文件的语法,但这由插件解决,因为它自动优先选择补丁中的文件而不是主文件。

ma​​in_expansion 部分在那里,因为这是在线教程创建的文件路径。所以他们的实际文件路径是

main_expansion/images/funny_image.jpg

而我的是类似

audio_files/dialog/hello.mp3

听起来很简单,但这给我带来了不必要的麻烦。

另外,值得注意的是,当我使用 Cordova cli 6.2.0 时它不起作用,但当我升级到 6.5.0 时它起作用了。这是在您的 root/config.xml 文件中完成的:

<preference name="phonegap-version" value="cli-6.5.0" />

【讨论】:

这非常有帮助,但我对一个问题感到困惑。 PhoneGap Build 要求您将它处理的所有文件包含在一个 www 目录中,并在其根目录中包含 index.html 等。那么带有扩展文件的目录(在我的情况下是 90 兆音频文件)到哪里去呢?如果我把它放在 www 目录中,那么它太大了,无法上传到 PhoneGap Build 云。但是如果我不把它放在那里,那么它就不会被上传。帮助... 嘿彼得!我很高兴能帮上忙!这是不久前的事了,但如果我没记错的话,您不会将扩展文件上传到 PhoneGap Build,但只有在您上传到 Google Playstore 时才会如此。查看:developer.android.com/google/play/expansion-files 了解更多信息。让我知道它是否有效! 是的,你是对的。但是最新版本的 Playstore 控制台并没有提供任何上传扩展文件的选项。您可以发送 APK 文件,仅此而已。看来他们现在希望我们使用捆绑包,而不是扩展文件。无论如何,我通过压缩音频文件解决了这个问题,使所有文件都在 50MB 以下并且一切正常。谢谢!彼得

以上是关于阅读 Android 扩展文件 - PhoneGap 构建的主要内容,如果未能解决你的问题,请参考以下文章

一键构建PhoneGap构建到Android

特定文件扩展名的Android意图过滤器?

如何使用phonegap检测android中的来电号码

Android Telephony分析 ---- 接口扩展(实践篇)

如何在 Android 的原生视图之上覆盖 PhoneGap 的 CordovaWebView?

在启动时加载外部链接的 Phonegap 应用程序 - Android