我正在开发Cordova插件,该插件封装了适用于iOS和Android平台的Messenger框架。
当将此插件添加到应用程序项目时,ionic Cordova可以很好地构建,并且iOS应用程序启动的执行没有问题。
我的问题是deveiceready
事件未触发,没有插件被加载,就好像加载系统只是静默退出一样,根本没有日志…
如果我删除此插件,则devireceready
被解雇,其他插件加载正常
我尝试过:
plugin.xml
<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
xmlns:android="http://schemas.android.com/apk/res/android"
id="cordova-plugin-lithium"
version="0.1">
<name>Lithium SMM Response messenger</name>
<description>Cordova Lithium SMM Response messenger Plugin</description>
<keywords>cordova,smm,lithium,response,messenger</keywords>
<js-module src="www/LithiumMessenger.js" name="LithiumMessenger">
<clobbers target="cordova.plugins.LithiumMessenger" />
</js-module>
<platform name="ios">
<config-file target="config.xml" parent="/widget">
<feature name="LithiumMessenger">
<param name="ios-package" value="LithiumMessenger"/>
<param name="onload" value="true" />
</feature>
</config-file>
<header-file src="src/ios/LithiumMessenger.h" />
<source-file src="src/ios/LithiumMessenger.m" />
<framework src="src/ios/Lithium.framework" custom="true" embed="true" />
</platform>
</plugin>
LithiumMessenger.m
#import "LithiumMessenger.h"
@implementation LithiumMessenger
- (void)messengerInit:(CDVInvokedUrlCommand *)command {
NSLog(@"ok");
CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
[self.commandDelegate sendPluginResult: pluginResult callbackId: command.callbackId];
}
@end
LithumMessenger.js
const exec = require('cordova/exec'),
const nativePluginName = 'LithiumMessenger';
exports.init = function(arg0, success, error) {
exec(success, error, nativePluginName, "messengerInit", [arg0]);
}
有可能对解决此问题的可能方式以及如何调试插件的Cordova加载过程进行一些了解