4D für iOS: Einfaches Interagieren mit Apple Native Apps

Bei 4D für iOS denken wir immer an mobilfreundliche Funktionen. Der Hauptzweck ist es, Entwicklern zu helfen, die beste Benutzererfahrung für ihre mobilen Anwendungen zu bieten. Aus diesem Grund liefern wir mit 4D v19 R3 Action Input Controls aus.

Was ist eine Eingabesteuerung?

Zur Erinnerung: Mit Formatierern, die den in der Galerie verfügbaren iOS-Code verwenden , können Sie von Ihrem Mobiltelefon aus problemlos mit nativen iOS-Anwendungen interagieren. Sie können zum Beispiel automatisch eine Telefonnummer wählen, indem Sie auf ein Telefonnummernfeld klicken, oder die Safari-App öffnen, indem Sie einfach auf eine URL klicken.

Action Input Controls folgen genau derselben Logik. Mit ihnen fügen Sie verschiedene Module in Ihre Aktionsformulare ein, um mit nativen Apple-Anwendungen zu interagieren. Einige davon sind bereits in der Galerie verfügbar, wie z. B. :

  • phoneContact: für die Suche nach der Telefonnummer eines Kontakts direkt in der Apple Contact App
  • emailContact: für die Suche nach der E-Mail-Adresse eines Kontakts direkt in der Apple Contact App
  • currentLocation und currentLocationAddress: um den aktuellen Standort des App-Benutzers automatisch mit Koordinaten (Breiten- und Längengrad) und Adressen zu füllen.

Sie wurden entwickelt, um Ihren Nutzern das Leben zu erleichtern, indem sie ihnen durch reibungslose Interaktionen mit der iOS-Umgebung neue Perspektiven eröffnen.

Und das Beste ist, dass Sie völlig frei sind, Ihre eigenen Eingabesteuerungen zu erstellen, sie in Ihre mobilen Projekte zu integrieren und sie mit der Community zu teilen!

Wie funktioniert das?

Um sie in Ihren mobilen Projekten zu verwenden, müssen Sie sie in Ihre Datenbank für Formatierer oder benutzerdefinierte Listen- und Detailformulare aufnehmen. Dazu erstellen Sie einen speziellen „inputControls“-Ordner, laden das für Sie passende Steuerelement aus der Galerie herunter, entpacken es und ziehen es in den inputControls-Ordner.

Dieses Steuerelement wird dann im Abschnitt Aktion in den Parametereigenschaften verfügbar und auswählbar sein, je nach Typ Ihres Aktionsparameters.

Hier ist ein Beispiel

In unserem Beispiel werden wir eine Telefonnummer und eine E-Mail-Adresse eines Kontakts aktualisieren. Der Clou dabei ist, dass wir die Daten aus der Apple Contact-App beziehen. In diesem Fall verwenden wir einfach die phoneContact- und emailContact-Eingabefelder, die in der Galerie verfügbar sind.

So sieht es in der App des Benutzers aus

Der Benutzer muss nur die Aktion editContact aus dem Aktionsmenü auswählen, um das Aktionsformular in der mobilen App anzuzeigen. Von dort aus kann er dann über die Aktionseingabe-Steuerelemente eine Telefonnummer und eine E-Mail aus der Apple Contact-App auswählen.

blank

Wie Sie also sehen, sind Action Input Controls eine weitere großartige Möglichkeit, mit Apple Native Apps zu interagieren und Ihren mobilen Apps eine schöne Interaktion hinzuzufügen.

So sieht es im Projekt-Editor aus

blank

Anschließend müssen wir die Aktion editieren in der Datenbankmethode On Mobile App Action erstellen, um unser Beispiel zum Laufen zu bringen.

4D-Code für die Bearbeitungsaktion

Hier sehen Sie ein Beispiel für den 4D-Code in der Datenbankmethode On Mobile App Action für die Aktion „Voreinstellung bearbeiten“ unter Verwendung der Komponente MobileAppServer:

#DECLARE($request : Object)->$response : Object
$action:=MobileAppServer.Action.new($request)
$response:=New object("success"; False)

Case of 
 : ($action.name="editContact") // edit@

  var $entity; $status : Object   
  $entity:=$action.getEntity()

  For each ($key; $request.parameters)
     $entity[$key]:=$request.parameters[$key]
  End for each

  $status:=$entity.save()  // save the entity

  If ($status.success)
    $response.success:=True  // notify App that action success
    $response.dataSynchro:=True  // notify App to refresh the selection
    $response.statusText:="Edited"
			
  Else 
    $response.statusText:="Failed to edit"  // $status.statusText
    $response.errors:=$status.errors
  End if 
End case 

Zur Erinnerung: Die MobileAppServer Komponente, die in 4D integriert ist, bietet Ihnen Zugang zu verschiedenen Utility-Methoden, um die Programmierung Ihres 4D Mobile App Backends zu beschleunigen.

Zögern Sie nicht, uns im 4D Forum Feedback zu geben, und lesen Sie die Dokumentation für weitere Details!

David Azancot
4D for iOS Product Owner - David Azancot kam 2017 als Product Owner zum 4D Produktteam. Er ist verantwortlich für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen. Zu seinen Aufgaben gehört es auch, dafür zu sorgen, dass die Implementierungen der Funktionen den Bedürfnissen der Kunden entsprechen. David hat einen MBA-Abschluss in Marketing, Internet und Mobilität vom Leonard De Vinci Institute und begann seine Karriere 2011 bei einem mobilen Start-up-Unternehmen, das später von Madvertise (einer mobilen Marketinggruppe) übernommen wurde. Da er sich leidenschaftlich für mobile Schnittstellen interessiert, war er die erste Wahl, um 2015 interaktive mobile Werbeformate für die Gruppe zu entwickeln. Parallel dazu entwickelt David seit 2012 seine eigenen iOS- und Android-Applikationen.