【问题标题】:Merge files while adding Cordova Plugins添加 Cordova 插件时合并文件
【发布时间】:2015-05-26 15:20:01
【问题描述】:

我为 Cordova 项目开发了 android 插件,但遇到了一个问题:合并文件。特别是资源文件。大多数插件都有相同的资源文件,如strings.xml,我想合并它们。我在 Google 上搜索了几天,但没有找到答案。

我应该在插件的plugin.xml 中写什么?源文件标签只是添加文件。 Config-file 标签允许我在文件中添加一些行,但是如果我有很多行,那就不舒服了。有合并文件的命令吗?

【问题讨论】:

    标签: java android cordova plugins


    【解决方案1】:

    我遇到了和你一样的问题,但没有找到使用 plugman 合并资源的方法(也许这在过去几年里发生了变化)。

    我所做的是我制作了一个插件,其中包含所有常见文件,基本内容如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <resources>
    </resources>
    

    然后在我需要设置资源的每个插件中,我在plugin.xml中使用plugman语法:

    <config-file target="res/values/ids.xml" parent="/resources">
        <item type="id" name="id1"/>
        <item type="id" name="id2"/>
        <item type="id" name="id3"/>
    </config-file>
    <config-file target="res/values/strings.xml" parent="/resources">
        <string name="message1">Hello</string>
        <string name="message2">world!</string>
    </config-file>
    

    最后,您可以在您的插件中设置对“基本资源”插件的依赖。

    这个系统的限制是如果你想发布你的插件并且人们同时使用它,因为其他插件会覆盖与你相同的资源文件......

    我曾经发布过a SO question,但没有得到回复。 我想我们可以直接向他们 jira 上的插件人询问这个问题。

    【讨论】:

    • 我希望他们将来会添加合并功能
    • 这似乎是对值进行小的一次性处理的好方法,但并没有真正涵盖更复杂的布局和样式。
    【解决方案2】:

    这里有点晚了;

    您可以创建 your_plugin_strings.xml 并使用 target-dir 将其添加到您的值文件夹中。然后可以像在strings.xml 中一样使用这些值,例如“@string/your_plugin_hello_message

    【讨论】:

      【解决方案3】:

      我也遇到了这个问题。另一种可能性,虽然绝对是您控制的插件的解决方法(已下载源,不使用 PhoneGap Builder),但将您的资源值添加到值文件夹的从未使用的版本修饰符中。见Android Resources Docs

      Android 允许基于 Android 版本的修饰符,任何资源文件夹都可以使用这些修饰符。例如,通过“作弊”并将您的字符串放入res/values-v1,允许您的strings.xml 存在一个单独的文件夹,而不会覆盖不同插件的值。任何使用 android v1 或更高版本的 Android 设备(Honeycomb 是 v13,Kitkat 是 v19,Lollipop 5.0 是 21,5.1 是 22,等等)

      您必须为每个插件使用不同的版本号,但在使用 Gingerbread (v9) 之前有很多版本,所以除非您是超级插件,否则此解决方法可以在短期内解决问题.

      如果 Android 以我认为的方式使用它的修饰符,您的插件的值将获得自动偏好,因为该值比默认值文件夹“更具体”,最匹配的 vN 文件夹获得最多偏好。

      但是,如果我弄错了,您的将不会得到偏好,因此您需要调试/发现命名冲突并相应地调整您的。

      【讨论】:

        猜你喜欢
        • 2018-12-01
        • 2017-10-21
        • 2018-07-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多