Desarrollo de HarmonyOS: resumen de problemas comunes en el desarrollo (1)

Prefacio

Originalmente, este artículo necesitaba describir cómo lograr la dependencia remota y la carga de paquetes compartidos estáticos y sobre el establecimiento de servidores privados para paquetes compartidos estáticos. Lamento mucho decirles que debido a la demora en la solicitud de gestión organizacional y el oficial Los permisos de algunos documentos aún no están abiertos, por lo que la explicación debe posponerse, probablemente hasta el primer trimestre de 2024, que es el próximo año. Después de todo, la actualización de HarmonyOS, abandonando AOSP, no estará abierta a todos los desarrolladores. hasta el primer trimestre de 2024, por lo que no hay prisa. .

Lo que necesito decirle es que todos los artículos sobre HarmonyOS se basan en la última API9. Si está estudiando a continuación API9, con respecto a servidores remotos y privados, el soporte oficial es el paquete npm. No daré una descripción general aquí. Después de todo Como desarrollador, debes basarte en la última API.

Algunos documentos no tienen permiso para ser vistos, respuesta oficial al correo electrónico:

Algunos documentos no tienen permiso para ser vistos, la comunidad respondió:

Se ha estado revisando la organización y gestión del almacén central de la biblioteca tripartita OpenHarmony:

Afortunadamente, la ausencia de servidores remotos y privados no afecta nuestro aprendizaje y desarrollo normales, después de todo, podemos utilizar paquetes locales compartidos para el desarrollo, que también pueden satisfacer nuestras necesidades.

El trabajo de preparación básico, los cuatro artículos que se han resuelto hasta ahora, definitivamente se utilizarán en el desarrollo futuro. El artículo de hoy es un resumen de los problemas. Hay muchos problemas que los desarrolladores deben comprender con urgencia y también se encontrarán en desarrollo futuro Llegó.

El esquema de este artículo es el siguiente:

1. Cómo cambiar el nombre y el ícono de la aplicación

2. Cómo cambiar la página de entrada principal

3. Cómo realizar la operación de inicialización global

4. ¿Cuál es la diferencia entre archivos ets y archivos ts?

5. Obtenga el contextoContexto

6. Obtenga el número de versión y otra información.

7. Cómo obtener información del dispositivo

8. Cómo hacer un brindis

9. Resumen relevante

1. Cómo cambiar el nombre y el ícono de la aplicación

Cambiar el nombre de la aplicación

Para cambiar el nombre de la aplicación, simplemente observe cómo se cambia en el proyecto de Android, solo necesita cambiar el atributo de etiqueta en la aplicación en el archivo de manifiesto AndroidManifest.xml, como se muestra a continuación:

Entonces, en el proyecto HarmonyOS, en realidad es igual de simple. En la estructura del proyecto descrita anteriormente, sabemos que el archivo de manifiesto AndroidManifest.xml en Android es similar al module.json5 en HarmonyOS. Por lo tanto, cambiar el nombre de la aplicación también está aquí. dentro del archivo.

Cambie la ubicación de la siguiente manera:

Las habilidades pueden tener múltiples UIAabilities. El nombre de la aplicación debe configurarse en la UIAability de la entrada principal. Configurarlo en otras UIAabilities no tendrá efecto.

Al elegir cambiar archivos, hay tres opciones, que son similares a la operación de internacionalización en Android. Actualmente hay tres archivos, chino e inglés americano, y la base predeterminada. Lo que implica que cuando la configuración regional del dispositivo es chino simplificado, chino Los archivos se buscarán primero. Es decir, zh_CN. Cuando el entorno de idioma del dispositivo es inglés americano, en_US se buscará primero. Base es el directorio que existe de forma predeterminada. Cuando no se pueden encontrar recursos en otros directorios, se buscará desde la base. Por supuesto, además de los tres predeterminados, se puede ampliar a otros idiomas.

Si solo estás frente al mercado nacional, solo necesitas cambiar el valor correspondiente en zh_CN, es decir, cambiar el valor, si es internacional, entonces también es necesario cambiar la información correspondiente.

Cambiar imagen de la aplicación

Al igual que cambiar la ubicación del nombre de la aplicación, UIAbility como entrada principal también cambia. La ubicación del cambio es la siguiente:

2. Cómo cambiar la página de entrada principal

La entrada principal es la primera página que se muestra después de iniciar la aplicación. En Android, configuramos las siguientes etiquetas para la Actividad en el archivo de manifiesto AndroidManifest.xml.

 <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

En HarmonyOS, es diferente, simplemente cambie el atributo mainElement en module.json5:

Recuerda, el valor aquí debe ser consistente con lo que definiste en habilidades, solo hay una.

3. Cómo realizar operaciones de inicialización global

Hay muchas situaciones en las que necesitamos inicializar con antelación, como configuración de red, algunos SDK de terceros, etc., para facilitar llamadas posteriores, en Android suele ser en la Aplicación, claro que en algunos casos puede También puede estar en la página de inicio o en la operación de la página principal, ¿cómo operarlo en HarmonyOS? ¿Existe una función similar a la de Aplicación? La respuesta es sí, usa AbilityStage.

Interpretación oficial: AbilityStage es un contenedor de componentes a nivel de módulo. El HAP de la aplicación creará una instancia de AbilityStage cuando se cargue por primera vez, y el módulo se puede inicializar y realizar otras operaciones.

Es fácil de usar, sólo dos pasos.

Primero, cree el archivo AbilityStage, que se puede crear en el directorio ets correspondiente al Módulo.

Recuerde exportar el valor predeterminado, que debe usarse como prefijo; de lo contrario, fallará.

import AbilityStage from '@ohos.app.ability.AbilityStage';

export default class MyAbilityStage extends AbilityStage {
  onCreate() {
    // 应用的HAP在首次加载的时,为该Module初始化操作
  }
}

Segundo, configuración relacionada

En el archivo de configuración module.json5, especifique la ruta del código correspondiente al módulo configurando el parámetro srcEntry como punto de entrada para la carga de HAP.

{
  "module": {
    "name": "entry",
    "type": "entry",
    "srcEntry": "./ets/myabilitystage/MyAbilityStage.ts",
    ...
  }
}

Además del método de inicialización, AbilityStage también tiene muchas devoluciones de llamadas de eventos. Si encuentra esto en el futuro, puede consultarlo directamente en el sitio web oficial.

4. ¿Cuál es la diferencia entre archivos ets y archivos ts?

Una vez creado el proyecto, encontrará que no solo hay archivos ets sino también archivos ts. Muchas personas tendrán preguntas, entonces, ¿qué tipo de archivos debemos crear durante el desarrollo del proyecto? ¿Es un archivo ets o un archivo ts?

Lo primero que hay que decir es el archivo ets, que es ArkTS. Es el principal lenguaje de desarrollo de aplicaciones preferido de HarmonyOS. ArkTS ha ampliado aún más la ecología TypeScript (TS para abreviar) en torno al desarrollo de aplicaciones. Hereda todas las características de TS y es el núcleo de TS. Super set, por lo que en el desarrollo real, puede usar todos los archivos ets para el desarrollo y no hay ningún problema. Al igual que en los casos oficiales, todos los archivos ets se abren.

Entonces, ¿pueden coexistir los archivos ts y ets? Obviamente es posible. Después de todo, en un nuevo proyecto, ambos archivos existen. En mi desarrollo diario, relacionado con la capa UI, generalmente creo archivos ets y archivos ordinarios, como archivos de herramientas. , Se basa principalmente en ts archivos Por supuesto, depende completamente de la empresa y de su propia elección.

Las dos formas de crear archivos son las siguientes:

5. Obtenga el contextoContexto

El contexto es muy importante en Android. Ya sea para saltar a una página o una ventana emergente, o crear una Vista, casi siempre se usa. En HarmonyOS, aunque el peso no es tan alto, se usa en aplicaciones específicas. recursos, solicitar y verificar permisos, etc. También se requieren escenas.

En el modo Stage, hay varias formas de obtener contexto.

1. Obtenga el contexto global

export default class App extends AbilityStage {
  
  private mAbilityStageContext = this.context
  
}

2. Obtenga el contexto de habilidad

export default class EntryAbility extends UIAbility {

  private mUIAbilityContext = this.context
  
}

3. Contexto de contexto de aplicación

El módulo ApplicationContext proporciona a los desarrolladores capacidades de contexto a nivel de aplicación, incluida una interfaz de escucha para registrar y cancelar el registro del ciclo de vida de los componentes dentro de la aplicación.

let applicationContext = this.context.getApplicationContext();

6. Obtenga el número de versión y otra información.

Paquete de guía

import bundleManager from '@ohos.bundle.bundleManager';

Obtenga atributos comunes de la siguiente manera

    let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT;
            try {
              bundleManager.getBundleInfoForSelf(bundleFlags).then((data) => {
                const versionCode=data.versionCode//应用包的版本号
                const versionName=data.versionName//应用包的版本文本描述信息
                const name=data.name//应用包的名称
                const vendor=data.versionCode//应用包的供应商
                const installTime=data.installTime//应用包安装时间
                const updateTime=data.updateTime//应用包更新时间

              }).catch(err => {
                hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed. Cause: %{public}s', err.message);
              });
            } catch (err) {
              hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed: %{public}s', err.message);
            }

7. Cómo obtener información del dispositivo

Paquete de guía

import deviceInfo from '@ohos.deviceInfo'

Obtenga atributos comunes de la siguiente manera

const deviceType = deviceInfo.deviceType //设备类型
const manufacture = deviceInfo.manufacture //设备厂家名称
const brand = deviceInfo.brand //设备品牌名称
const osFullName = deviceInfo.osFullName //系统版本
const sdkApiVersion = deviceInfo.sdkApiVersion //系统软件API版本
const versionId = deviceInfo.versionId //版本ID
const udid = deviceInfo.udid //设备Udid,需要权限:ohos.permission.sec.ACCESS_UDID,该权限为系统权限,仅对系统应用开放。
const hardwareModel = deviceInfo.hardwareModel //硬件版本号
const productSeries = deviceInfo.productSeries //产品系列

8. Cómo hacer un brindis

Con respecto a Toast, las actualizaciones e iteraciones son bastante frecuentes. El siguiente código se utiliza en la última API9:

import promptAction from '@ohos.promptAction'

promptAction.showToast({            
    message: 'Message Info',
    duration: 2000,      
  });

parámetro:

nombre del parámetro

tipo

Requerido

ilustrar

opciones

Mostrar opciones de Toast

Opciones de texto emergente.

Objeto ShowToastOptions:

nombre

tipo

Requerido

ilustrar

mensaje

cadena/Recurso9+

El mensaje de texto mostrado. La fuente predeterminada es 'Harmony Sans'; no se admite la configuración de otras fuentes.

duración

número

No

El valor predeterminado es 1500 ms y el rango de valores es: 1500 ms-10000 ms. Si es inferior a 1500 ms, se utiliza el valor predeterminado. Si es superior a 10000 ms, el valor límite superior es 10000 ms.

abajo

cadena/número

No

Establezca la posición del borde de la ventana emergente desde la parte inferior de la pantalla.

9. Resumen relevante

Todavía se encuentran muchos problemas durante el desarrollo. Después de todo, la mayoría de los desarrolladores son nuevos en esto. En el desarrollo posterior, también actualizaré de vez en cuando sobre problemas comunes o puntos de conocimiento, con la esperanza de brindar alguna orientación. un poco de ayuda.

Supongo que te gusta

Origin blog.csdn.net/ming_147/article/details/132920827
Recomendado
Clasificación