Red de conocimiento informático - Espacio del host - Serie de código fuente escrito a mano

Serie de código fuente escrito a mano

Flutter ha apoyado el desarrollo estable de dispositivos de escritorio durante algún tiempo y debo decir que la función de soporte multiplataforma de Flutter es realmente excelente. No tengo experiencia en desarrollo de escritorio, pero aun así desarrollé un subprograma de escritorio usando Flutter. La función es muy simple, es formatear el json de entrada y convertirlo en un modelo.

Sin más preámbulos, echemos un vistazo a los resultados reales. Dirección del código fuente del proyecto

El entorno de desarrollo es el siguiente:

Flutter:2.8.1

Dart:2.15.1

IDE : VSCode

JSON, como formato de datos con el que tratamos a menudo en el trabajo de desarrollo diario, tiene seis tipos de datos: nulo, num, cadena, objeto, matriz y bool. Estamos obligados a amarlo y odiarlo. Me encanta porque es realmente conveniente y conciso como formato de procesamiento de datos. Pero cuando necesitemos entrar en contacto con el análisis de json en el desarrollo de flutter, será muy complicado, porque Flutter no tiene reflexión, lo que hace que la relación de mapeo de json se modele mediante escritura a mano, lo cual es muy complicado. Como esto.

Se aceptan pequeñas cantidades de datos. Una vez que la cantidad aumenta, el método de análisis de escritura por sí solo puede hacerte dudar de tu vida. Sin mencionar la posibilidad de errores de escritura. Afortunadamente, la herramienta oficial **json_serializable** puede generar automáticamente este código de conversión, lo que también resuelve la brecha en el modelo de conversión json en flutter. Por supuesto, también hay sitios web que se especializan en analizar json, que pueden generar automáticamente código dart después de que el usuario lo genera, y se puede copiar al proyecto, lo cual también es muy conveniente.

Este proyecto toma el análisis json como punto de partida. Echemos un vistazo a cómo Flutter desarrolla aplicaciones de escritorio.

Deje que nuestro proyecto Flutter sea compatible con dispositivos de escritorio. Primero debemos modificar la configuración de flutter. De la siguiente manera, permita que nuestro proyecto admita sistemas Windows y Macos.

A continuación, use el comando flutter create para crear nuestro proyecto de plantilla.

Después de crear el proyecto, ya podemos ejecutarlo.

Veamos primero la interfaz general. Hay cuatro interfaces: módulo de función, módulo de selección de archivos, módulo de entrada y módulo de salida.

Cuando creamos una nueva aplicación de escritorio, la plantilla predeterminada es una Appbar. En este momento, puede usar el mouse para arrastrar y mover la aplicación, acercarla y alejarla e incluso reducirla a un tamaño muy pequeño. Sin embargo, una vez que eliminamos esta barra de navegación, la ventana no se puede arrastrar con el mouse. A menudo no queremos que los usuarios hagan un zoom muy pequeño en nuestra ventana. Esto provocará anomalías en la página y cierta información importante se mostrará de manera incompleta. Por lo tanto, aquí necesitamos utilizar el componente de terceros bitsdojo_window. A través de bitsdojo_window, podemos personalizar la ventana, arrastrar, tamaño mínimo, tamaño máximo, bordes de la ventana y botones en la parte superior de la ventana para acercar, alejar y cerrar.

A través del componente InkWell, puede capturar gestos, movimientos del mouse y del lápiz óptico y posiciones de permanencia.

Esta función es la interfaz interactiva de UI después de mover el mouse. Para mostrar información sobre herramientas en una ventana, puede utilizar Superposición. Cabe señalar que debido a que el nodo raíz del texto superpuesto no es un componente del estilo del material, aparecerá un subrayado amarillo. Así que asegúrese de envolver el texto con materiales. Y debe darle una posición a la entrada superpuesta creada; de lo contrario, aparecerá en pantalla completa.

Al principio intenté utilizar el componente InkWell para leer el archivo arrastrado, pero este componente no pudo reconocer el mouse arrastrado y no pudo obtener la información del archivo. Así que ríndete. Más tarde, en el artículo "Flutter: escriba una aplicación de escritorio en 2 días", encontré un componente desktop_drop que puede leer y arrastrar archivos, que puede cumplir con los requisitos.

Utilizando el componente de código abierto file_picker, la operación después de seleccionar una imagen es la misma que la operación después de arrastrar y arrastrar para seleccionar una imagen.

Si desea mostrar texto enriquecido, Textfield necesita personalizar TextEditingController. Y anule el método buildTextSpan.

Al realizar la función de exportación, encontré el siguiente error, indicándome que no tengo permiso para acceder a los archivos en el directorio correspondiente.

Encuentre una descripción del problema de permisos en la documentación de desarrollo de Apple. Entre ellos, la clave de la clave privada autorizada es com. archivos de seguridad de Apple. Descargas. Representa el acceso de lectura/escritura a la carpeta de descargas del usuario. Luego, use Xcode para abrir la aplicación mac en el proyecto Flutter, modifique el archivo DebugProfile.entitlements en el directorio del proyecto y agregue com. descargas de archivos .security de Apple. Lea y escriba el archivo de autorización, establezca el valor en SÍ, guarde y reinicie el proyecto Flutter. Descubrí que puede leer y escribir archivos en el directorio de descarga.

Por supuesto, este es un funcionamiento normal. Otra operación de Sao es desactivar el mecanismo de zona de pruebas del sistema. Configure la zona de pruebas de la aplicación del archivo de autorización en no para que podamos acceder a cualquier ruta. Por supuesto, desactivar la zona de pruebas de la aplicación equivale a desactivar el mecanismo de protección de la aplicación, por lo que esta opción debe usarse con precaución.

Dirección original:/post/7069689952459554830