用于iOS的自定义ionic/cordva插件。插件错误中未定义方法
我正在swift中用ionic for iOS编写自定义插件,但出现以下错误:用于iOS的自定义ionic/cordva插件。插件错误中未定义方法,ios,swift,cordova,ionic-framework,Ios,Swift,Cordova,Ionic Framework,我正在swift中用ionic for iOS编写自定义插件,但出现以下错误: ERROR: Method 'initialize:' not defined in Plugin 'RabbitMqPlugin' 我一直在寻找解决办法,但我不知道问题出在哪里 下面是我的代码 plugin.xml文件: <?xml version="1.0" encoding="UTF-8"?> <plugin xmlns="http://apache.org/cordova/ns/plug
ERROR: Method 'initialize:' not defined in Plugin 'RabbitMqPlugin'
我一直在寻找解决办法,但我不知道问题出在哪里
下面是我的代码
plugin.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
id="cordova-plugin-rabbitmq"
version="0.0.1">
<name>RabbitMqPlugin</name>
<js-module src="www/plugin.js" name="RabbitMqPlugin">
<clobbers target="RabbitMqPlugin" />
</js-module>
<!-- ios -->
<dependency id="cordova-plugin-cocoapod-support" />
<dependency id="cordova-plugin-add-swift-support" />
<platform name="ios">
<pods-config ios-min-version="9.0" use-frameworks="true">
</pods-config>
<pod name="RMQClient" />
<config-file target="config.xml" parent="/*">
<feature name="RabbitMqPlugin">
<param name="ios-package" value="CDVDevice"/>
</feature>
</config-file>
<source-file src="src/ios/CDVHttpRequest.swift" />
<source-file src="src/ios/CDVRabbitMq.swift" />
<source-file src="src/ios/CDVRabbitMqPlugin.swift" />
</platform>
</plugin>
src/ios文件夹中的CDVRabbitMqPlugin.swift文件:
import Foundation
@objc(RabbitMqPlugin) class RabbitMqPlugin : CDVPlugin {
var mRabbit:rabbitMQ!;
@objc(initialize:)
func initialize(_ command: CDVInvokedUrlCommand){
var pluginResult = CDVPluginResult(
status: CDVCommandStatus_ERROR
);
let token = command.arguments[0] as! String;
if (token.characters.count > 0) {
mRabbit = rabbitMQ(mToken: token);
pluginResult = CDVPluginResult(
status: CDVCommandStatus_ERROR
);
}
self.commandDelegate!.send(
pluginResult,
callbackId: command.callbackId
)
}
}
为了支持swift,我安装了cordova插件添加swift支持模块。
我已经为Android添加了自定义插件ionic plugin,并成功地实现了我的ionic项目
希望你能帮助我。谢谢plugin.xml中的功能是错误的,应该是错误的
<feature name="RabbitMqPlugin">
<param name="ios-package" value="RabbitMqPlugin"/>
</feature>
另外,如果您不使用CDVClassname命名类,请不要以CDV开头命名包含这些类的文件,不确定这是否会在Swift中失败,但最好使用与它们包含的类相同的名称命名Swift文件是的,非常感谢。现在我得到了这个:线程警告:['RabbitMqPlugin']使用了'20.425049'ms。插件应该使用后台线程。在检查中,我还发现:未能加载资源:不受支持的URLgap://readyThat这只是一个警告。如果您想摆脱它,可以使用后台线程,请参阅插件指南的线程部分。关于不支持的URL,您是否使用WKWebView插件?在index.html中是否有内容安全策略元标记?如果你有,你能分享吗?其他插件可以工作吗?我已经添加了webview插件。是的,我已经添加了安全元标签,这里是:是的,其他插件可以工作。Content-security-Policy。在发送之前将其更改为
,类似于pluginResult.setKeepCallbackAsBool(true)
<feature name="RabbitMqPlugin">
<param name="ios-package" value="RabbitMqPlugin"/>
</feature>