【问题标题】:Two cordova plugins modifying "*-Info.plist" CFBundleURLTypes两个修改“*-Info.plist”CFBundleURLTypes的cordova插件
【发布时间】:2014-11-12 12:19:56
【问题描述】:

我有 2 个 Cordova 插件正在修改 CFBundleURLTypes: 第一个:

<config-file target="*-Info.plist" parent="CFBundleURLTypes">
  <array>
    <dict>
      <key>CFBundleURLSchemes</key>
      <array>
        <string>$URL_SCHEME</string>
      </array>
    </dict>
  </array>
</config-file>

第二个:

<config-file target="*-Info.plist" parent="CFBundleURLTypes">
  <array>
    <dict>
      <key>CFBundleURLSchemes</key>
      <array>
        <string>fb$APP_ID</string>
      </array>
     </dict>
  </array>
</config-file>

只有添加的第一个插件在修改“*-Info.plist”。

有没有办法让两个插件都附加 -Info.plist 文件?

【问题讨论】:

标签: ios cordova cordova-plugins


【解决方案1】:

在 Cordova 3.6.3-0.2.13 上,两个配置值都被添加,但以这种方式:

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fb12345678</string>
        </array>
    </dict>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>anotherUrlScheme</string>
        </array>
    </dict>
</array>

在 Cordova 4.0 及更高版本(4.0.0、4.1.2、4.2.0)上,第二个添加的插件的配置值将被忽略。因此,plist 看起来像(假设首先添加了 facebook 插件):

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fb12345678</string>
        </array>
    </dict>
</array>

作为一种解决方法,我们修改了 facebook 插件以添加两个 URL 方案,一个来自 APP_ID (fb$APP_ID),并为 URL SCHEME 插件创建了另一个。我们检查了 facebook 插件源以便能够修改源,并从该目录添加插​​件,而不是从 GIT 获取。

在phonegap-facebook-plugin的plugin.xml中:

<config-file target="*-Info.plist" parent="CFBundleURLTypes">
    <array>
        <dict>
          <key>CFBundleURLSchemes</key>
          <array>
            <string>fb$APP_ID</string>
            <string>$URL_SCHEME</string>
          </array>
        </dict>
    </array>
</config-file>

在 facebook-plugin 的“插件添加”中,为其他插件提供 URL_SCHEME。

这样,当安装 facebook 插件时,它将为两个插件添加两个 URL 方案。我知道解决这个问题真的很老套,但是我们需要尽快添加这个功能,不能等待 Cordova 添加这个功能。

如果你们有其他方法,请告诉我。

【讨论】:

  • 我会把它添加到我已经很长的自定义插件修改列表中,谢谢:)
  • 感谢您的解决方法。虽然它不能解决其他插件的问题,但它是一个很好的解决方法。
【解决方案2】:

我用这句话在 Apache Cordova 上的 IOS PLATFORM 中添加“URL Types”:

<config-file target="*-Info.plist" parent="CFBundleURLTypes">
    <array>
        <dict>
            <key>CFBundleURLSchemes</key>
                <array>
                    <string>**APP_NAME**</string>
                </array>

            <key>CFBundleURLName</key>
            <string>**PACKAGE_ID**</string>
        </dict>
    </array>
</config-file>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    • 2023-03-08
    • 1970-01-01
    • 2018-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多