End-to-End-Demonstration für Android

improve this page | report issue

Übersicht

Bei der folgenden Demonstration geht es darum, einen End-to-End-Ablauf zu veranschaulichen:

  1. Eine im Lieferumfang des MobileFirst-Client-SDK enthaltene Beispielanwendung wird in der MobileFirst Operations Console registriert und heruntergeladen.
  2. Ein neuer oder bereitgestellter Adapter wird über die MobileFirst Operations Console implementiert.
  3. Die Anwendungslogik wird geändert, um eine Ressourcenanforderung zu ermöglichen.

Endergebnis:

  • Erfolgreiches Absetzen eines Pingsignals an MobileFirst Server
  • Erfolgreiches Abrufen von Daten mit einem Adapter

Voraussetzungen:

  • Android Studio
  • Optional: MobileFirst CLI (Download)
  • Optional: Eigenständiger MobileFirst Server (Download)

1. MobileFirst Server starten

Stellen Sie sicher, dass eine Mobile-Foundation-Instanz erstellt wurde oder,
falls Sie das MobileFirst Developer Kit verwenden, navigieren Sie zum Ordner des Servers und führen Sie unter Mac und Linux den Befehl ./run.sh oder unter Windows den Befehl run.cmd aus.

2. Anwendung erstellen

Öffnen Sie in einem Browser die MobileFirst Operations Console. Laden Sie dazu die URL http://Ihr_Server-Host:Serverport/mfpconsole. Wenn Sie die Konsole lokal ausführen, verwenden Sie http://localhost:9080/mfpconsole. Geben Sie für Benutzername/Kennwort die Werte admin/admin an.

  1. Klicken Sie neben Anwendungen auf die Schaltfläche Neu.
    • Wählen Sie die Android-Plattform aus.
    • Geben Sie als Anwendungs-ID den Wert com.ibm.mfpstarterandroid ein.
    • Geben Sie für die Version den Wert 1.0 ein.
    • Klicken Sie auf Anwendung registrieren.

    Anwendung registrieren

  2. Klicken Sie auf die Kachel Startercode abrufen und wählen Sie die Beispielanwendung für Android zum Download aus.

    Beispielanwendung herunterladen

3. Anwendungslogik bearbeiten

  1. Öffnen Sie Android Studio und importieren Sie das Projekt.

  2. Wählen Sie im Seitenleistenmenü Project die Datei app → java → com.ibm.mfpstarterandroid → ServerConnectActivity.java aus. Gehen Sie dann wie folgt vor:

  • Fügen Sie die folgenden Importe hinzu:

    import java.net.URI;
    import java.net.URISyntaxException;
    import android.util.Log;
    
  • Fügen Sie das folgende Code-Snippet als Ersatz für den Aufruf von WLAuthorizationManager.getInstance().obtainAccessToken ein:

    WLAuthorizationManager.getInstance().obtainAccessToken("", new WLAccessTokenListener() {
                  @Override
                  public void onSuccess(AccessToken token) {
                      System.out.println("Received the following access token value: " + token);
                      runOnUiThread(new Runnable() {
                          @Override
                          public void run() {
                              titleLabel.setText("Yay!");
                              connectionStatusLabel.setText("Connected to MobileFirst Server");
                          }
                      });
    
                      URI adapterPath = null;
                      try {
                          adapterPath = new URI("/adapters/javaAdapter/resource/greet");
                      } catch (URISyntaxException e) {
                          e.printStackTrace();
                      }
    
                      WLResourceRequest request = new WLResourceRequest(adapterPath, WLResourceRequest.GET);
                        
                      request.setQueryParameter("name","world");
                      request.send(new WLResponseListener() {
                          @Override
                          public void onSuccess(WLResponse wlResponse) {
                              // Gibt "Hello world" in LogCat aus
                              Log.i("MobileFirst Quick Start", "Success: " + wlResponse.getResponseText());
                          }
    
                          @Override
                  public void onFailure(WLFailResponse wlFailResponse) {
                      Log.i("MobileFirst Quick Start", "Failure: " + wlFailResponse.getErrorMsg());
                          }
                      });
                  }
    
                  @Override
                  public void onFailure(WLFailResponse wlFailResponse) {
                      System.out.println("Did not receive an access token from server: " + wlFailResponse.getErrorMsg());
                      runOnUiThread(new Runnable() {
                          @Override
                          public void run() {
                              titleLabel.setText("Bummer...");
                              connectionStatusLabel.setText("Failed to connect to MobileFirst Server");
                          }
                      });
                  }
              });
    

4. Adapter implementieren

Laden Sie dieses vorbereitete Adapterartefakt herunter und implementieren Sie es über die MobileFirst Operations Console, indem Sie Aktionen → Adapter implementieren auswählen.

Alternativ können Sie neben Adapter auf die Schaltfläche Neu klicken.

  1. Wählen Sie Aktionen → Beispiel herunterladen aus. Laden Sie das Java-Adapterbeispiel “Hello World” herunter.

    Wenn Maven und die MobileFirst CLI nicht installiert sind, folgen Sie den auf dem Bildschirm angezeigten Anweisungen unter Entwicklungsumgebung einrichten.

  2. Navigieren Sie in einem Befehlszeilenfenster zum Stammverzeichnis des Adapter-Maven-Projekts und führen Sie den folgenden Befehl aus:

    mfpdev adapter build
    
  3. Wenn der Build fertiggestellt ist, implementieren Sie den Adapter über die MobileFirst Operations Console, indem Sie Aktionen → Adapter implementieren auswählen. Sie finden den Adapter im Ordner [adapter]/target.

    Adapter implementieren

Beispiel-App

5. Anwendung testen

  1. Wählen Sie in Android Studio im Seitenleistenmenü Project die Datei app → src → main →assets → mfpclient.properties aus und bearbeiten Sie die Eigenschaften protocol, host und port. Geben Sie die entsprechenden Werte für Ihren MobileFirst Server an.
    • Wenn Sie einen lokalen MobileFirst Server verwenden, lauten die Werte normalerweise http, localhost und 9080.
    • Wenn Sie einen fernen MobileFirst Server (für IBM Cloud) verwenden, lauten die Werte in der Regel https, Ihre_Serveradresse und 443.
    • Wenn Sie einen Kubernetes-Cluster in IBM Cloud Private verwenden und der Implementierungstyp NodePort ist, ist der Portwert in der Regel der NodePort, der vom Service im Kubernetes-Cluster zugänglich gemacht wird.

    Wenn Sie die MobileFirst CLI installiert haben, können Sie alternativ zum Projektstammverzeichnis navigieren und den Befehl mfpdev app register ausführen. Bei Verwendung eines fernen MobileFirst Server müssen Sie den Befehl mfpdev server add ausführen, um den Server hinzuzufügen, gefolgt beispielsweise von mfpdev app register myIBMCloudServer.

  2. Klicken Sie auf die Schaltfläche Run App.


Ergebnisse

  • Wenn Sie auf die Schaltfläche Ping MobileFirst Server klicken, wird Connected to MobileFirst Server angezeigt.
  • Wenn die Anwendung eine Verbindung zu MobileFirst Server herstellen konnte, findet ein Ressourcenanforderungsaufruf unter Verwendung des implementierten Java-Adapters statt.

Die Antwort des Adapters wird in der LogCat-Ansicht von Android Studio ausgegeben.

Anwendung, die erfolgreich eine Ressource von MobileFirst Server aufgerufen hat

Nächste Schritte

Informieren Sie sich über die Verwendung von Adaptern in Anwendungen und über die Integration von zusätzlichen Services wie Push-Benachrichtigungen mithilfe des MobileFirst-Sicherheitsframeworks. Weitere Möglichkeiten sind:

Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.
Last modified on February 27, 2020