Développement HarmonyOS : résumé des problèmes courants en développement (1)

Préface

À l'origine, cet article devait décrire comment réaliser une dépendance à distance et télécharger des packages partagés statiques et sur la création de serveurs privés pour les packages partagés statiques. Je suis vraiment désolé de vous dire qu'en raison du retard dans la demande de gestion organisationnelle et du fonctionnaire les autorisations de certains documents ne sont pas encore ouvertes, à ce sujet L'explication doit être reportée, probablement jusqu'au premier trimestre 2024, qui est l'année à venir. Après tout, la mise à niveau d'HarmonyOS, abandonnant AOSP, ne sera pas ouverte à tous les développeurs jusqu’au premier trimestre 2024, il n’y a donc pas de précipitation. .

Ce que je dois vous dire, c'est que les articles sur HarmonyOS sont tous basés sur la dernière API9. Si vous étudiez en dessous de l'API9, concernant les serveurs distants et privés, le support officiel est le package npm. Je ne donnerai pas un aperçu ici. Après tout , en tant que développeur, vous devez vous baser sur la dernière API.

Certains documents ne sont pas autorisés à être consultés, réponse officielle par e-mail :

Certains documents ne sont pas autorisés à être consultés, a répondu la communauté :

L'organisation et la gestion de l'entrepôt central de la bibliothèque tripartite OpenHarmony sont en cours de révision :

Heureusement, l'absence de serveurs distants et privés n'affecte pas notre apprentissage et notre développement normaux.Après tout, nous pouvons utiliser des packages partagés locaux pour le développement, qui peuvent également répondre à nos besoins.

Le travail de préparation de base, les quatre articles qui ont été triés jusqu'à présent, seront certainement utilisés dans le développement futur. L'article d'aujourd'hui est un résumé des problèmes. Il existe de nombreux problèmes que les développeurs doivent comprendre de toute urgence, et ils seront également rencontrés dans développement futur.Arrivé.

Le plan de cet article est le suivant :

1. Comment changer le nom et l'icône de l'application

2. Comment changer la page d'entrée principale

3. Comment effectuer une opération d'initialisation globale

4. Quelle est la différence entre les fichiers ets et les fichiers ts ?

5. Obtenez le contexteContext

6. Obtenez le numéro de version et d’autres informations

7. Comment obtenir des informations sur l'appareil

8. Comment porter un toast

9. Résumé pertinent

1. Comment changer le nom et l'icône de l'application

Changer le nom de l'application

Pour changer le nom de l'application, il suffit de regarder comment il est modifié dans le projet Android. Il vous suffit de modifier l'attribut label dans l'application dans le fichier manifeste AndroidManifest.xml, comme indiqué ci-dessous :

Donc dans le projet HarmonyOS, c'est en fait tout aussi simple. Dans la structure du projet décrite précédemment, nous savons que le fichier manifeste AndroidManifest.xml dans Android est similaire au module.json5 dans HarmonyOS. Donc changer le nom de l'application est également ici dans le fichier.

Modifiez l'emplacement comme suit :

Les capacités peuvent avoir plusieurs UIAabilities. Le nom de l'application doit être défini dans l'UIAbility de l'entrée principale. Le définir dans d'autres UIAabilities ne prendra pas effet.

Lorsque vous choisissez de modifier des fichiers, il existe trois options, similaires à l'opération d'internationalisation sous Android. Il existe actuellement trois fichiers, le chinois et l'anglais américain, ainsi que la base par défaut. L'implication est que lorsque les paramètres régionaux de l'appareil sont le chinois simplifié, le chinois les fichiers seront mis en correspondance en premier. Autrement dit, zh_CN. Lorsque la langue de l'appareil est l'anglais américain, en_US sera mis en correspondance en premier. Base est le répertoire qui existe par défaut. Lorsque les ressources ne peuvent pas être trouvées dans d'autres répertoires, la recherche sera effectuée à partir de la base. Bien entendu, en plus des trois langues par défaut, vous pouvez être étendu à d'autres langues.

Si vous faites uniquement face au marché intérieur, il vous suffit de modifier la valeur correspondante sous zh_CN, c'est-à-dire de modifier la valeur. S'il s'agit d'un marché international, les informations correspondantes doivent également être modifiées.

Changer l'image de l'application

Tout comme le changement de l'emplacement du nom de l'application, UIability en tant qu'entrée principale est également modifié. L'emplacement du changement est le suivant :

2. Comment changer la page d'entrée principale

L'entrée principale est la première page affichée après le démarrage de l'application. Sous Android, nous configurons les balises suivantes pour l'activité dans le fichier manifeste AndroidManifest.xml.

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

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

Dans HarmonyOS, c'est différent, il suffit de changer l'attribut mainElement dans module.json5 :

N'oubliez pas que la valeur ici doit être cohérente avec ce que vous avez défini dans les capacités. Il n'y en a qu'une.

3. Comment effectuer des opérations d'initialisation globales

Il existe de nombreuses situations où nous devons initialiser à l'avance, comme la configuration du réseau, certains SDK tiers, etc., pour faciliter les appels ultérieurs. Sous Android, c'est généralement dans l'application. Bien sûr, dans certains cas, cela peut être également dans la page de démarrage ou dans le fonctionnement de la page principale, comment l'utiliser dans HarmonyOS ? Existe-t-il un rôle similaire à celui de l'application ? La réponse est oui, utilisez AbilityStage.

Interprétation officielle : AbilityStage est un conteneur de composants au niveau du module. Le HAP de l'application créera une instance AbilityStage lors de son premier chargement, et le module peut être initialisé et d'autres opérations.

C'est facile à utiliser, seulement deux étapes.

Créez d’abord le fichier AbilityStage, qui peut être créé dans le répertoire ets correspondant au Module.

Pensez à exporter default, qui doit être utilisé comme préfixe, sinon il plantera !

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

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

Deuxièmement, configuration associée

Dans le fichier de configuration module.json5, précisez le chemin de code correspondant au module en configurant le paramètre srcEntry comme point d'entrée pour le chargement HAP.

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

En plus de la méthode d'initialisation, AbilityStage propose également de nombreux rappels d'événements. Si vous rencontrez cela à l'avenir, vous pouvez le vérifier directement sur le site officiel.

4. Quelle est la différence entre les fichiers ets et les fichiers ts ?

Une fois le projet créé, vous constaterez qu'il n'y a pas seulement des fichiers ets mais aussi des fichiers ts. Beaucoup de gens se poseront des questions, alors quel type de fichiers devrions-nous créer pendant le développement du projet ? Est-ce un fichier ets ou un fichier ts.

La première chose qui doit être dite est le fichier ets, qui est ArkTS. C'est le principal langage de développement d'applications préféré d'HarmonyOS. ArkTS a encore étendu l'écologie TypeScript (TS en abrégé) autour du développement d'applications. Il hérite de toutes les fonctionnalités de TS et est le cœur de TS. Super ensemble, donc dans le développement réel, vous pouvez utiliser tous les fichiers ets pour le développement, et il n'y a aucun problème. Tout comme les différents cas donnés par le responsable, tous les fichiers ets sont ouverts.

Alors les fichiers ts et ets peuvent-ils coexister ? Évidemment, c'est possible. Après tout, dans un nouveau projet, les deux fichiers existent. Dans mon développement quotidien, lié à la couche UI, je crée généralement des fichiers ets, et des fichiers ordinaires, tels que des fichiers d'outils. , il est principalement basé sur ts fichiers. Bien sûr, cela dépend entièrement de l’entreprise et de votre propre choix.

Les deux manières de créer des fichiers sont les suivantes :

5. Obtenez le contexteContext

Le contexte est très important sous Android. Qu'il s'agisse d'accéder à une page ou à une fenêtre pop-up, ou de créer une vue, il est presque toujours utilisé. Dans HarmonyOS, même si son poids n'est pas si élevé, il est utilisé dans des applications spécifiques. ressources, demande et vérification des autorisations, etc. Des scènes sont également requises.

En mode Scène, il existe plusieurs façons d'obtenir du contexte.

1. Obtenez le contexte mondial

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

2. Obtenez le contexte de la capacité

export default class EntryAbility extends UIAbility {

  private mUIAbilityContext = this.context
  
}

3. Contexte ApplicationContext

Le module ApplicationContext offre aux développeurs des fonctionnalités contextuelles au niveau de l'application, notamment en fournissant une interface d'écoute pour enregistrer et désenregistrer le cycle de vie des composants au sein de l'application.

let applicationContext = this.context.getApplicationContext();

6. Obtenir le numéro de version et d'autres informations

Forfait guide

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

Obtenez les attributs communs comme suit

    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. Comment obtenir des informations sur l'appareil

Forfait guide

import deviceInfo from '@ohos.deviceInfo'

Obtenez les attributs communs comme suit

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. Comment porter un toast

Concernant Toast, les mises à jour et les itérations sont assez fréquentes. Le code suivant est utilisé dans la dernière API9 :

import promptAction from '@ohos.promptAction'

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

paramètre:

le nom du paramètre

taper

Requis

illustrer

choix

Afficher les options de toast

Oui

Options de texte contextuel.

Objet ShowToastOptions :

nom

taper

Requis

illustrer

message

chaîne/Ressource9+

Oui

Le message texte affiché. La police par défaut est « Harmony Sans », la définition d'autres polices n'est pas prise en charge.

durée

nombre

Non

La valeur par défaut est de 1 500 ms et la plage de valeurs est : 1 500 ms-10 000 ms. Si elle est inférieure à 1 500 ms, la valeur par défaut est utilisée. Si elle est supérieure à 10 000 ms, la valeur limite supérieure est de 10 000 ms.

bas

chaîne/numéro

Non

Définissez la position de la bordure de la fenêtre contextuelle à partir du bas de l'écran.

9. Résumé pertinent

Il y a encore beaucoup de problèmes rencontrés pendant le développement. Après tout, la plupart des développeurs sont nouveaux dans ce domaine. Dans le développement ultérieur, je mettrai également à jour de temps en temps les problèmes courants ou les points de connaissances, dans l'espoir de fournir des conseils. Tout le monde apporte un peu d'aide.

Je suppose que tu aimes

Origine blog.csdn.net/ming_147/article/details/132920827
conseillé
Classement