Как отладить загрузку плагина iOS Cordova? - PullRequest
1 голос
/ 10 мая 2019

Я работаю над разработкой плагина Cordova, который инкапсулирует каркас мессенджера для платформы iOS и Android.При добавлении этого плагина в проект приложения, 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

...