【问题标题】:cordova/phonegap plugin add VS config.xmlcordova/phonegap 插件添加 VS config.xml
【发布时间】:2015-09-29 05:46:18
【问题描述】:

对于 phonegap/cordova 插件,我发现有些地方让我很困惑。

比如我可以跑

cordova plugin add cordova-plugin-whitelist

phonegap plugin add cordova-plugin-whitelist

这样做不会修改config.xml 文件


或者我可以添加到 config.xml:

<plugin name="cordova-plugin-whitelist" spec="1.1.0" />

<gap:plugin name="cordova-plugin-whitelist" spec="1.1.0" />


所有这些不同的插件安装之间到底有什么区别?到底应该用哪一个?

我希望所有其他开发人员计算机上都可以使用相同的插件,以完全相同的版本拥有一个稳定且可复制的环境(并且 CLI 似乎没有指定版本......)。我应该将我的 /plugins 文件夹中的任何内容包含到 Git 中吗?

注意:如果重要的话,我还不知道我将来会使用哪个 cordova 或 phonegap CLI,因为我还不知道我是否会使用 Phonegap Build。目前,两个 CLI (v5.1.1) 似乎都可以正常工作。

【问题讨论】:

    标签: cordova phonegap-plugins cordova-plugins


    【解决方案1】:

    您应该开始阅读有关 PhoneGap 和 Cordova 之间的区别(没有) - 可以在此处找到更多信息:Difference between PhoneGap and Cordova

    cordova plugin add cordova-plugin-console 命令没有修改config.xml 一定是您的系统存在问题。我刚刚尝试过,可以肯定的是,这在 5.1.1 中按预期工作,并且确实如此。

    config.xml 全新构建后不添加插件:

    <?xml version='1.0' encoding='utf-8'?>
    <widget id="com.example.com" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
        <preference name="AllowInlineMediaPlayback" value="false" />
        <preference name="BackupWebStorage" value="cloud" />
        <preference name="DisallowOverscroll" value="false" />
        <preference name="EnableViewportScale" value="false" />
        <preference name="KeyboardDisplayRequiresUserAction" value="true" />
        <preference name="MediaPlaybackRequiresUserAction" value="false" />
        <preference name="SuppressesIncrementalRendering" value="false" />
        <preference name="GapBetweenPages" value="0" />
        <preference name="PageLength" value="0" />
        <preference name="PaginationBreakingMode" value="page" />
        <preference name="PaginationMode" value="unpaginated" />
        <feature name="LocalStorage">
            <param name="ios-package" value="CDVLocalStorage" />
        </feature>
        <allow-intent href="itms:*" />
        <allow-intent href="itms-apps:*" />
        <name>test</name>
        <description>
            A sample Apache Cordova application that responds to the deviceready event.
        </description>
        <author email="dev@cordova.apache.org" href="http://cordova.io">
            Apache Cordova Team
        </author>
        <content src="index.html" />
        <access origin="*" />
        <allow-intent href="http://*/*" />
        <allow-intent href="https://*/*" />
        <allow-intent href="tel:*" />
        <allow-intent href="sms:*" />
        <allow-intent href="mailto:*" />
        <allow-intent href="geo:*" />
    </widget>
    

    添加cordova plugin add cordova-plugin-console后,底部新增三行:

    <feature name="Console">
        <param name="ios-package" value="CDVLogger" />
    </feature>
    
    • gap: 是您的 config.xml 的 PhoneGap 设置
    • 在不同版本中添加插件将使用此命令:cordova plugin add [PLUGIN_ID]@[VERSION]
    • 我建议您建立一个包含您需要的插件的存储库,然后有人应该注意这一点并更新插件,以便其他人可以在该版本中需要这些插件时将这些插件分叉到他们的计算机上。
    • 只需使用其中之一,PhoneGap 或 Cordova,没有区别。

    【讨论】:

      【解决方案2】:

      用途:

      cordova plugin add cordova-plugin-whitelist --save

      Source

      【讨论】:

        【解决方案3】:

        答案很长。请阅读。

        所有这些不同的插件安装之间到底有什么区别?到底应该用哪一个?

        直到这个日期 (2015-11-05) 和更长的时间,不同的插件存在细微的差异。 Cordova 和 Phonegap 正在努力消除这种情况。出于所有密集目的,您应该使用 *NEW* 插件存储库

        新插件库:http://cordova.apache.org/plugins/

        NEW CORE 插件列表:http://cordova.apache.org/docs/en/5.1.1/cordova/plugins/pluginapis.html (注意:不在此列表中的那些插件是不是核心。)

        我希望所有其他开发人员计算机上都可以使用相同的插件,以完全相同的版本拥有一个稳定且可复制的环境(并且 CLI 似乎没有指定版本......)。我应该将我的 /plugins 文件夹中的任何内容包含到 Git 中吗?

        没有。现在,只需使用当前的 NPM 系统。您可能想要使用--save 选项,以便保留您正在使用的插件的副本。注意:这有副作用。阅读Cordova docs了解更多信息。

        团队注意事项:许多框架都希望您使用“领先”优势,以“最新和最伟大”的形式出售。这有很多很多副作用。 Cordova 和 Phonegap 都有版本控制选项。学习使用它。

        这将有助于: http://devgirl.org/2014/11/07/cordovaphonegap-version-confusion/


        HOW TO apply the Cordova/Phonegap the whitelist system

        我引用:

        这是细分。

        对于与 Cordova 一起使用的白名单系统,实际上有四 (4) 个不相关的系统。

        1. legacy-whitelist 插件(避免)是以前的白名单系统。它仅用于向后兼容。
        2. whitelist 插件(Cordova 的)是新的白名单系统。从 Cordova Tools 4.0.0 开始需要它。它包含三 (3) 个部分。
        3. W3's CSP(Content Security Policy Level 2)是一个逐页实现的白名单系统。从 Cordova Tools 5.0.0 开始需要它。它有十六 (16) 个部分。
        4. Apple's ATS(App Transport Security)是iOS独有的白名单系统。它需要从 iOS9 开始。它在 Info.plist 中实现

        【讨论】:

          【解决方案4】:
          <gap:plugin name="cordova-plugin-whitelist"npm />
          

          使用这个有时如果你使用这个代码它不会工作

          <gap:plugin name="cordova-plugin-whitelist" spec="1.1.0" />
          

          【讨论】:

            猜你喜欢
            • 2014-06-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-02-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多