簡體   English   中英

遷移cordova項目時找不到插件

[英]Plugin not found while migrating cordova project

我正在將應用程序從Cordova 2.2.0遷移到3.5。 我正在使用iOS的自定義插件,該插件負責掃描條形碼。 我已將代碼放在Cordova Library項目下的文件夾中。

我使用以下代碼調用插件:

var RedLaserPlugin = {
scanBarcode: function(successFunction, failFunction) {
  return Cordova.exec(successFunction, failFunction, "RedLaserPlugin",
                      "scanBarcode", []);
}

}

並且...在加載應用程序時,

document.addEventListener("deviceready", function () { Cordova.exec(rlp_success, rlp_failure, "RedLaserPlugin", "init", []); }, false);

在config.xml文件中,我使用...添加了插件的依賴項。

<feature name="RedLaserPlugin">
    <param name="ios-package" value="RedLaserPlugin" />

但是,當我運行該應用程序時,它無法將插件綁定到xcode項目並給出以下內容:

-[CDVCommandQueue executePending] [Line 159] FAILED pluginJSON = ["RedLaserPlugin1615451183","RedLaserPlugin","init",[]]

嘗試了多種組合以使其正常工作,但沒有一個起作用。 我想念什么嗎?

編輯:我在如下文件夾中創建了一個plugin.xml:

<js-module src="www/RedLaserPlugin.js" name="RedLaserPlugin">
<clobbers target="navigator.RedLaserPlugin" />

= 3.8.0“ />

<!-- config file -->
<config-file target="config.xml" parent="/*">
    <feature name="RedLaserPlugin">
        <param name="ios-package" value="RedLaserPlugin" />
    </feature>
</config-file>

<header-file src="platforms/ios/Production/Classes/MainViewController.h" />
<header-file src="platforms/ios/Production/Classes/MainViewController.m" />
<header-file src="platforms/ios/Production/Classes/MainViewController.xib" />
<header-file src="platforms/ios/Production/Classes/MainViewController.m" />
<header-file src="platforms/ios/Production/Plugins/RedLaserPlugin.h" />
<header-file src="platforms/ios/Production/Plugins/RedLaserPlugin.m" />
<header-file src="platforms/ios/Production/Plugins/RedLaserSDK.h" />
<header-file src="platforms/ios/Production/Plugins/RedLaserPluginFiles/RedLaserOverlayController.h" />
<header-file src="platforms/ios/Production/Plugins/RedLaserPluginFiles/RedLaserOverlayController.m" />
<header-file src="platforms/ios/Production/Plugins/RedLaserPluginFiles/RedLaserOverlayController.xib" />

並嘗試使用cmd安裝插件

cordova plugin add RedLaserPlugin.js

但是它給我終端中的錯誤,如:

TypeError: Cannot read property 'match' of undefined

我假設您從Cordova 3.5生成了一個新的Xcode項目。

如果正確,您是否添加了要編譯的插件源代碼?

轉到構建階段,然后打開“編譯源”下拉列表。 單擊+,然后添加丟失的插件源,該源應該已經在您的plugins目錄中。

我認為您的plugin.xml無效。

這是我為自定義插件創建的示例plugin.xml模板:

<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
    id="your_plugin_id"
    version="your_version">

    <name>plugin_name</name>
    <description>description</description>
    <license>Apache 2.0</license>
    <keywords>keyword_of_the_plugin</keywords>

    <!-- ios -->
    <platform name="ios">
      <source-file src="Plugin_source_file" />

      <framework src="required_framework" />

      <config-file target="config.xml" parent="/*/plugins">
          <feature name="feature_name">
              <param name="ios-package" value="plugin_name"/>
          </feature>
      </config-file>
      <config-file target="config.xml" parent="/*">
        <access origin="*" />
      </config-file>
    </platform>

    <!-- android -->
    <platform name="android">
        <!-- android-specific elements -->
    </platform>
</plugin>

例如,查看以下文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM