[英]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.