Colección de citas famosas - Slogan de motivación - Extensión del widget IOS14 (extensión del widget)

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

Archivo->Nuevo->Destino->Extensión de widget

Este artículo explica principalmente el caso en el 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 al widget cuándo renderizar y actualizar el widget. Las líneas de tiempo contienen tipos de TimelineEntry definidos por el usuario. El objeto de línea de tiempo identifica la fecha en la que desea que el widget 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, la declaración oficial es que cada widget recibirá un número limitado de actualizaciones por día.

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 según 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, deben implementar múltiples 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 del 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).

PosterFromJson Este método de conversión de modelo de datos solo es adecuado para interfaces simples (¿para vagos ♀?), HandyJSON o KaKaJson aún analizan modelos de datos complejos.

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

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

Haga clic en una ventana de widget para invocar la aplicación para interactuar. 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 los widgets y las aplicaciones son independientes entre sí, si desea utilizar los mismos datos, debe compartir los datos entre ellos y crear un grupo de aplicaciones.

Target-》En la APP principal firma y firma. Capacidad->+ Capacidad->Agregar grupo de aplicaciones

Ps: se dice en línea que necesita crear un APPID de aplicación, pero cuando la administración automática y la administración automática de firmas están activadas, xcode lo hará automáticamente. créelo para usted APPID relacionado.

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

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

supervisor de notificaciones 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"