Red de conocimiento informático - Aprendizaje de programación - Extensión del widget IOS14 (extensión del widget)

Extensión del widget IOS14 (extensión del widget)

Archivo - gt; Nuevo - gt; Destino - gt; Extensión de widget

Este artículo explica principalmente la situación en la que las propiedades de configuración del usuario no están marcadas.

Muestra una estructura que proporciona toda la información necesaria para un widget, sigue el protocolo TimelineProvider y genera una línea de tiempo que le indica a WidgetKit cuándo renderizar y actualizar el widget. Las líneas de tiempo contienen tipos de TimelineEntry definidos por el usuario. La entrada de la línea de tiempo identifica la fecha en la que desea que WidgetKit actualice el contenido del widget. Incluya en el tipo personalizado las propiedades que la vista del widget necesita representar.

La estrategia de actualización de la línea de tiempo se retrasará y es posible que no se actualice exactamente según el tiempo que establezca. Al mismo tiempo, el funcionario afirmó que cada widget recibirá una cantidad limitada de actualizaciones todos los días.

Explicación oficial de TimelineProvider

El modelo de datos necesario para representar los widgets debe cumplir con el protocolo TimelineEntry.

Puedes configurar diferentes vistas para widgets de diferentes tamaños, dependiendo de lo que el widget muestre en la pantalla.

Un Widget sólo puede implementar componentes de tres tamaños diferentes: grande, mediano y pequeño. Si los componentes existentes necesitan realizar diferentes funciones y tener el mismo tamaño y especificaciones, es necesario implementar varios componentes.

1. Admite múltiples widgets modificando el archivo de entrada del widget original y agregando más configuraciones.

2. Cree otro archivo SwiftUI para implementar la función del componente, elimine @main y modifique el mismo nombre de función.

Y vincular el modelo correspondiente en la entrada de la página de Widget.

Si la aplicación principal está escrita en Swift, puede compartir el archivo del módulo de solicitud de red o la biblioteca de pods (el método se presentará más adelante).

El método de conversión de modelos de datos PosterFromJson solo es adecuado para interfaces simples (¿para personas perezosas? HandyJSON o KaKaJson todavía analizan modelos de datos complejos).

Si se utiliza un método de conversión de modelo de terceros, el procesamiento de la solicitud de sincronización de la imagen se puede colocar en la solicitud getTodayPoster para el procesamiento de sincronización.

Luego actualice y complete lo correspondiente en el marcador de posición getSnapshot vista previa Entradas para completar la visualización del contenido del widget.

Haga clic en la ventana del widget para evocar la interacción de la APLICACIÓN. Hay dos formas de especificar un salto:

En los tres tamaños del widget,

Modo de recepción

Recibir la URL devuelta en APPDelegate.

Si el proyecto implementa SceneDelegate, debe implementar el procesamiento de salto en SceneDelegate.

Debido a que el widget y la aplicación son independientes entre sí, si desea utilizar los mismos datos, debe compartir datos entre los dos y crear un grupo de aplicaciones.

Destino -> En la APLICACIÓN principal; Firma y Capacidad - gt; Capacidad - gt; Agregar grupo de aplicaciones

Ps: Se dice en línea que necesita crear un APPID. pero después de abrir Gestión automática En el caso de la gestión automática de firmas, xcode creará automáticamente el APPID correspondiente para usted.

Los datos * * * entre ellos se comparten principalmente en dos formas: UserDefaults y FileManager.

Tomemos como ejemplo UserDefaults *** disfrutando de datos en OC.

supervisor de llamadas híbrido rápido

Una vez completado, puede utilizar SDK de terceros en pods.

Mensaje de error al utilizar el SDK de terceros de Pods.

Si importa bibliotecas de terceros en pods o utiliza el método [Aplicación para compartir aplicaciones UI], informe el siguiente error.

Debe seleccionar el SDK incorrecto en el destino de los pods y hacer clic en buildSettings para buscar Requerir.

Luego cambie Solo requerir que las aplicaciones extiendan la API de seguridad y luego cambie "Sí" a "No"