Recherche…


Ecrire le code Java dans nativescript et l'utiliser directement en javascript

Voici l'image de la structure du projet en studio Android:

entrer la description de l'image ici

Voici l'image de la structure du projet nativescript:

entrer la description de l'image ici

Comme vous voyez, ils sont identiques. Nous pouvons donc écrire du code Java en nativescript lorsque nous écrivons dans Android Studio.

Nous voulons ajouter Toast à l'application par défaut de nativescript. Après avoir créé un nouveau projet nativescript, créez un répertoire comme celui-ci dans le répertoire java/org/example :

entrer la description de l'image ici

créer un nouveau fichier MyToast.java dans le répertoire example ;

MyToast.java:

package org.example;

import android.widget.Toast;
import android.content.Context;


public class MyToast{

    public static void showToast(Context context,String text ,String StrDuration ){
      int duration;
      switch (StrDuration){
          case "short":
              duration = Toast.LENGTH_SHORT;
              break;
          case "long":
              duration = Toast.LENGTH_LONG;
              break;
      }
        Toast.makeText(context,text, Toast.LENGTH_SHORT).show();
    }
}

Notes : n'oubliez pas le nom du paquet;

app.component.ts:

import {Component} from "@angular/core";
let application = require("application");

declare var org:any;
@Component({
    selector: "my-app",
    templateUrl: "app.component.html",
})
export class AppComponent {
    public counter: number = 16;

    public get message(): string {
        if (this.counter > 0) {
            return this.counter + " taps left";
        } else {
            return "Hoorraaay! \nYou are ready to start building!";
        }
    }

    public onTap() {
        this.counter--;
        org.example.MyToast.showToast(application.android.context,"You pressed the button","short");
    }
}

maintenant, lorsque vous appuyez sur le bouton, il affiche un toast;

Notes :

  1. La fonction showToast accepte le contexte pour le transmettre à Toast.makeText et nous lui avons passé un contexte de cette manière: application.android.context
  2. typecript ne sait pas quelle org est, nous l'avons donc déclaré: declare var org:any;

utiliser apis natif directement en javascript

Nous voulons ajouter Toast à l'application par défaut nativescript.

import {Component} from "@angular/core";
let application = require("application");

declare var android:any;

@Component({
    selector: "my-app",
    templateUrl: "app.component.html",
})
export class AppComponent {
    public counter: number = 16;

    public get message(): string {
        if (this.counter > 0) {
            return this.counter + " taps left";
        } else {
            return "Hoorraaay! \nYou are ready to start building!";
        }
    }

    public onTap() {
        this.counter--;
        this.showToast("You pressed the button","short");
    }



    public showToast(text:string ,StrDuration:string ):void{
      let duration:number;
      switch (StrDuration){
          case "short":
              duration = android.widget.Toast.LENGTH_SHORT;
              break;
          case "long":
              duration = android.widget.Toast.LENGTH_LONG;
              break;
      }    
        android.widget.Toast.makeText(application.android.context,text, android.widget.Toast.LENGTH_SHORT).show();
   }
}

pour créer des toasts, nous devons appeler Toast.makeText et il est dans le package android.widget.Toast . Toast.makeText accepte le contexte comme premier argument et nous pouvons obtenir le contexte dans nativescript de cette manière: application.android.context



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow