首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >迁移cordova项目时找不到插件

迁移cordova项目时找不到插件
EN

Stack Overflow用户
提问于 2015-08-10 13:42:45
回答 2查看 103关注 0票数 0

我正在将一个应用程序从Cordova 2.2.0迁移到3.5。我正在使用自定义插件的iOS,这是负责扫描条形码。我已经将代码放在Cordova Library项目下的一个文件夹中。

我使用以下代码调用该插件:

代码语言:javascript
复制
var RedLaserPlugin = {
scanBarcode: function(successFunction, failFunction) {
  return Cordova.exec(successFunction, failFunction, "RedLaserPlugin",
                      "scanBarcode", []);
}

}

还有..。在加载应用程序时,

代码语言:javascript
复制
document.addEventListener("deviceready", function () { Cordova.exec(rlp_success, rlp_failure, "RedLaserPlugin", "init", []); }, false);

在config.xml文件中,我使用.

代码语言:javascript
复制
<feature name="RedLaserPlugin">
    <param name="ios-package" value="RedLaserPlugin" />

但是,当我运行该应用程序时,它无法将插件绑定到xcode项目,并给出如下内容:

代码语言:javascript
复制
-[CDVCommandQueue executePending] [Line 159] FAILED pluginJSON = ["RedLaserPlugin1615451183","RedLaserPlugin","init",[]]

尝试了多个组合使其工作,但没有一个。我是不是遗漏了什么?

编辑:我在文件夹中创建了一个plugin.xml,如下所示:

代码语言:javascript
复制
<js-module src="www/RedLaserPlugin.js" name="RedLaserPlugin">
<clobbers target="navigator.RedLaserPlugin" />

代码语言:javascript
复制
 =3.8.0" /> 

代码语言:javascript
复制
<!-- 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安装插件。

代码语言:javascript
复制
cordova plugin add RedLaserPlugin.js

但它让我在终端机上犯了一个错误:

代码语言:javascript
复制
TypeError: Cannot read property 'match' of undefined
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-11 10:30:37

我认为你的plugin.xml是无效的。

下面是我为我的自定义插件创建的示例plugin.xml模板:

代码语言:javascript
复制
<?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>

例如,检查下面的文档

票数 0
EN

Stack Overflow用户

发布于 2015-08-10 13:52:06

我假设您得到了一个由Cordova 3.5生成的新Xcode项目。

如果这是正确的,你是否添加了你的插件的源代码要编译?

转到构建阶段,然后打开编译后的源代码下拉列表。单击+并添加缺少的插件源代码,它应该已经在您的插件目录中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31921173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档