如何调试iOS Cordova插件的加载?

时间:2019-05-10 08:30:03

标签: ios cordova ionic-framework plugins

我正在开发Cordova插件,该插件封装了适用于iOS和Android平台的Messenger框架。 当将此插件添加到应用程序项目时,ionic Cordova可以很好地构建,并且iOS应用程序启动的执行没有问题。 我的问题是deveiceready事件未触发,没有插件被加载,就好像加载系统只是静默退出一样,根本没有日志… 如果我删除此插件,则devireceready被解雇,其他插件加载正常

我尝试过:

  • 将本机iOS实现从Swift 3重写为ObjC
  • 不添加此插件,
  • 仅添加此插件,然后删除其他插件
  • 少喝咖啡
  • 多喝咖啡

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加载过程进行一些了解

0 个答案:

没有答案