Red de conocimiento informático - Computadora portátil - ¿Qué debo hacer si falla la compilación de iOS de la comunidad APICloud?Recientemente, la empresa necesita utilizar APICloud para el desarrollo y necesito proporcionar algunos paquetes de módulos para el empaquetado. Como soy nuevo en APICloud, también está en la documentación oficial. A continuación se muestra un poco de mi proceso de uso. Primero descargue el SDK oficial, descargue la última versión del SDK de desarrollo del módulo y busque ModulesDevProject_iOS.zip, que contiene ModuleDemo, ModulesDevProject y archivos de descripción. ModuleDemo es un proyecto oficial de generación de bibliotecas estáticas y empaquetado de paquetes de módulos. ModulesDevProject es un proyecto que nos permite depurarlo nosotros mismos. Implementación de la clase de módulo 2.1. Crear una nueva clase de módulo Crear una nueva clase UZModuleDemo, que hereda de la clase UZModule, donde la clase UZModule es la clase base del módulo. Durante el desarrollo del módulo, se recomienda agregar prefijos a los nombres de archivos para evitar conflictos con otros módulos. 2.2 Ciclo de vida del módulo Cuando el front-end js llama al método del módulo, el módulo se inicializará primero y el motor llamará a su método -(id)initWithUZWebView: (UZWebView *)webView cuando se encuentre la página donde se encuentra el módulo; se destruye, el motor llamará a su método - (void)disp)initWithUZWebView: (UZWebView *)webView, llamará a su método -(void)dispose. 2.3 Método de inicio Si el módulo necesita realizar algunas operaciones cuando se inicia la aplicación, primero debe configurar launchClassMethod en module.json. Por ejemplo, el método configurado es iniciar y luego implementar el método dentro del módulo, de modo que cuando se inicie. Cuando se inicia la aplicación, se ejecutará el método. (void)launch{ // El launchClassMethod configurado en module.json debe ser un método de clase Cuando se inicia la aplicación, el motor llamará al método configurado y el módulo puede realizar algunas operaciones de inicialización en él. registrar un Un objeto que implementa los métodos del protocolo UIApplicationDelegate. Objeto, el método del objeto se llamará cuando sea necesario. De esta manera, se pueden realizar funciones comunes, como el análisis y la inserción de URL de devolución de llamada de aplicaciones de terceros // La clase base del objeto básico de UZApphandler puede realizar algunos trabajos de inicialización que requieren la implementación de AppDelegate, como inicializando push AppKey, etc. // UZAppHandler * appHandler = [[UZAppDelegate]], donde el módulo puede realizar algunas operaciones de inicialización. appHandler = [[UZAppHandler alloc] init]; // [theApp addAppHandle: appHandler]; }2.4. Implementación de llamada al método - (void)showAlert: método (NSDictionary *)paramDict para mostrar el cuadro de diálogo. Este método debe configurarse en module.json y luego se puede llamar al método desde el front-end js. Si la interfaz pasa una función al llamar a este método, puede obtener la identificación de la función del campo cbId y luego volver a llamar los datos a js a través de la función cuando sea necesario.

¿Qué debo hacer si falla la compilación de iOS de la comunidad APICloud?Recientemente, la empresa necesita utilizar APICloud para el desarrollo y necesito proporcionar algunos paquetes de módulos para el empaquetado. Como soy nuevo en APICloud, también está en la documentación oficial. A continuación se muestra un poco de mi proceso de uso. Primero descargue el SDK oficial, descargue la última versión del SDK de desarrollo del módulo y busque ModulesDevProject_iOS.zip, que contiene ModuleDemo, ModulesDevProject y archivos de descripción. ModuleDemo es un proyecto oficial de generación de bibliotecas estáticas y empaquetado de paquetes de módulos. ModulesDevProject es un proyecto que nos permite depurarlo nosotros mismos. Implementación de la clase de módulo 2.1. Crear una nueva clase de módulo Crear una nueva clase UZModuleDemo, que hereda de la clase UZModule, donde la clase UZModule es la clase base del módulo. Durante el desarrollo del módulo, se recomienda agregar prefijos a los nombres de archivos para evitar conflictos con otros módulos. 2.2 Ciclo de vida del módulo Cuando el front-end js llama al método del módulo, el módulo se inicializará primero y el motor llamará a su método -(id)initWithUZWebView: (UZWebView *)webView cuando se encuentre la página donde se encuentra el módulo; se destruye, el motor llamará a su método - (void)disp)initWithUZWebView: (UZWebView *)webView, llamará a su método -(void)dispose. 2.3 Método de inicio Si el módulo necesita realizar algunas operaciones cuando se inicia la aplicación, primero debe configurar launchClassMethod en module.json. Por ejemplo, el método configurado es iniciar y luego implementar el método dentro del módulo, de modo que cuando se inicie. Cuando se inicia la aplicación, se ejecutará el método. (void)launch{ // El launchClassMethod configurado en module.json debe ser un método de clase Cuando se inicia la aplicación, el motor llamará al método configurado y el módulo puede realizar algunas operaciones de inicialización en él. registrar un Un objeto que implementa los métodos del protocolo UIApplicationDelegate. Objeto, el método del objeto se llamará cuando sea necesario. De esta manera, se pueden realizar funciones comunes, como el análisis y la inserción de URL de devolución de llamada de aplicaciones de terceros // La clase base del objeto básico de UZApphandler puede realizar algunos trabajos de inicialización que requieren la implementación de AppDelegate, como inicializando push AppKey, etc. // UZAppHandler * appHandler = [[UZAppDelegate]], donde el módulo puede realizar algunas operaciones de inicialización. appHandler = [[UZAppHandler alloc] init]; // [theApp addAppHandle: appHandler]; }2.4. Implementación de llamada al método - (void)showAlert: método (NSDictionary *)paramDict para mostrar el cuadro de diálogo. Este método debe configurarse en module.json y luego se puede llamar al método desde el front-end js. Si la interfaz pasa una función al llamar a este método, puede obtener la identificación de la función del campo cbId y luego volver a llamar los datos a js a través de la función cuando sea necesario.

- (void)showAlert: (NSDictionary *)paramDict { _ cbId = [paramDict integerValueForKey: @"cbId" defaultValue: -1] NSString *message = [paramDict stringValueForKey: @"msg" defaultValue: nil]; [[UIAlertView alloc] initWithTitle: nil message: message delegado: self cancelButtonTitle: @"Cancel" otherButtonTitles: @"OK", nil]; [alert show];} 2.5. *)alertView didDismissWithButtonIndex: (NSInteger) El método buttonIndex devuelve el índice del botón en el que hizo clic el usuario en el lado js. El código es el siguiente: - (void)alertView: (UIAlertView *)alertView didDismissWithButtonIndex: (NSInteger)buttonIndex {. if (_cbId gt; = 0) { NSDictionary *ret = @{@"index":@(buttonIndex)}; [self sendResultEventWithCallbackId:_cbId dataDict: ret errDict: nil doDelete.Yes]} Por supuesto, también puedes; Defina su propio método y, al mismo tiempo, modifique la configuración de module.json y tenga en cuenta que no hay [] y se citan chino e inglés. { "name": "moduleDemo", //El nombre del paquete del módulo es consistente "class": "UZModuleDemo", //nombre de clase del módulo "methods": ["showAlert", "method"], //define su propio método nombre " launchClassMethod": "Si se debe ejecutar el método de clase de lanzamiento}.