Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   iOS Datenaustausch mit Mobilgeräten (https://www.delphipraxis.net/177530-datenaustausch-mit-mobilgeraeten.html)

Union 13. Nov 2013 11:58

AW: Datenaustausch mit Mobilgeräten
 
Zitat:

Zitat von sx2008 (Beitrag 1235676)
An deiner Stelle würde ich mit dem Datenformat beginnen und die Entscheidung für einen Datentransport auf später verschieben wenn du mehr Erfahrung in dem ganzen Thema gesammelt hast.

Die Entscheidung für das Datenformat dieser speziellen app ist bereits getroffen, da wird csv verwendet da dann die Dateien eigentlich von jedem Fremdprogramm eingelesen werden können. Als Transport will ich wirklich möglichst alles abdecken, was auf so einem Mobilgerät standardmäßig eingerichtet ist: Die 3-4 größten Clouddienste sowie E-Mail attachment für den Versand. Für den Emfpang von externen Daten dann nur noch Cloud.

RWarnecke 13. Nov 2013 12:11

AW: Datenaustausch mit Mobilgeräten
 
Warum nimmst Du nicht die iCloud ?

Union 13. Nov 2013 12:23

AW: Datenaustausch mit Mobilgeräten
 
Wie mache ich das konkret?

Union 15. Nov 2013 08:51

AW: Datenaustausch mit Mobilgeräten
 
So, ich habe nun herausgefunden wie das mit der iCloud geht. Basis ist dieser Beitrag von Daniel.

Abweichend von den push-Notifications muß die entitlements wie folgt aussehen, wobei die XXXXXXXXXX mit der Developer-Program-ID und das com.domain.appname durch den CFBundleIdentifier ersetzt werden müssen:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
   <key>application-identifier</key>
   <string>XXXXXXXXXX.com.domain.appname</string>
  <key>com.apple.developer.ubiquity-container-identifiers</key>
  <array>
     <string>XXXXXXXXXX.com.domain.appname</string>
  </array>   
   <key>get-task-allow</key>
   <true/>
</dict>
</plist>
Die Cloud stellt sich dann als Verzeichnis dar, dessen Namen man so ermittelt:
Delphi-Quellcode:
function GetiCloudPath : string;
var
  nsFile: NSFileManager;
  URL: NSURL;
begin
  nsFile := TNSFileManager.Wrap(TNSFileManager.OCClass.defaultManager);
  URL := nsFile.URLForUbiquityContainerIdentifier(nil);
  if (URL <> nil) then
    Result := UTF8ToString(URL.path.UTF8String)
  else
    Result := '';
end;
Man kann Dateien in diesen Pfad einfach hineinkopieren:
Delphi-Quellcode:
procedure SaveToICloud(AFileName);
var
  ACloudPath : string;
begin
  ACloudPath := GetiCloudPath;
  if ACloudPath <> '' then
  begin
    TFile.Copy(AFileName, IncludeTrailingPathDelimiter(ACloudPath)+ExtractFileName(AFileName));
  end;
end;
Der Beweis, dass es funktioniert, kann man auf dem Mac in den iCloud-Einstellungen erbringen. Wenn man dort auf "Verwalten" geht, wird eine so kopierte Datei angezeigt. Auch in den iOS-Einstellungen auf dem Gerät zeigt sich das unter "Speicher & Backup > Speicher verwalten". Dort wird der vergebene app-name (aus dem Bundle-Identifier) angezeigt und der belegte Speicherplatz.

Nachteil, der das (jedenfalls zum Datenaustausch) ziemlich unbrauchbar macht: Ohne Tricks kann man auf diese Dateien nicht zugreifen, da sie app-spezifisch verwaltet werden.

Der Trick ist, eine app auf dem Mac zu starten, die iCloud-Zugriff hat. Dadurch wird ein Dienst gestartet, der den iCloud Ordner in der User-Library einbindet.

Die Daten findet man dann unter
Code:
~/Library/Mobile Documents/XXXXXXXXXX~com~domain~appname
wobei wieder die gleichen Ersetzungen gemacht werden müssen wie bei den Entitlements.

Ziemlich unbrauchbar das Ganze, vor allem für Nicht-Programmierer und Mac-Nutzer.

Mavarik 15. Nov 2013 10:17

AW: Datenaustausch mit Mobilgeräten
 
Zitat:

Zitat von Union (Beitrag 1236029)
Ziemlich unbrauchbar das Ganze, vor allem für Nicht-Programmierer und Mac-Nutzer.

Cool, hab mich gerade eingeloggt um Dir iCloud vor zu schlagen...

Wie sieht es denn unter Windows aus? Die Fotos stehen ja in einem Windowsordner bereit. Wie ist das mit den
"eigenen" Ordnern?

Mavarik

Union 15. Nov 2013 10:23

AW: Datenaustausch mit Mobilgeräten
 
Keine Ahnung, ich habe keine iCloud-Systemsteuerung. Das SkyDrive arbeitet genauso blöd. Aber da kann man wenigstens über ein Webinterface an alle Dateien ran.

Olli73 15. Nov 2013 11:18

AW: Datenaustausch mit Mobilgeräten
 
Zitat:

Zitat von Union (Beitrag 1236058)
Das SkyDrive arbeitet genauso blöd. Aber da kann man wenigstens über ein Webinterface an alle Dateien ran.

Was fehlt denn bei Skydrive?

http://msdn.microsoft.com/de-de/libr.../hh826521.aspx

Union 15. Nov 2013 11:54

AW: Datenaustausch mit Mobilgeräten
 
Wenn ich aus einer app was in Skydrive schicke, zeigt sich das nicht auf meinen PC's die das selbe SkyDrive-Konto haben. Nur über das Webinterface. Egal ob ich die Public mach oder share. Damit ist die Bequemlichkeit dahin.

Olli73 15. Nov 2013 12:00

AW: Datenaustausch mit Mobilgeräten
 
Zitat:

Zitat von Union (Beitrag 1236081)
Wenn ich aus einer app was in Skydrive schicke, zeigt sich das nicht auf meinen PC's die das selbe SkyDrive-Konto haben. Nur über das Webinterface. Egal ob ich die Public mach oder share. Damit ist die Bequemlichkeit dahin.

Wo werden denn die Dateien gespeichert? Ist das evtl. ein spezieller Ordner, der nur mit der App synct (nur mal so ins Blaue)?


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:22 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz