CycleTile mit entfernten Bildern erstellen

8

Ich habe eine Anzahl von Beispielen gesehen, die das CycleTile in Aktion zeigen, aber diese haben alle lokale Bilder benutzt. Ist es möglich, diese Bilder nach dem ersten Start der App zu setzen und die CycleTile auf die Remote-Bilder zu richten? Oder wenn ich diese zuerst auf dem Telefon speichern muss, wie kann ich die CycleTile dazu bringen, sie zu referenzieren?

    
totiG 03.01.2013, 23:33
quelle

2 Antworten

21

CycleTileTemplate & amp; CycleTileData unterstützt nur lokale URIs und unterstützt keine Remote-Web-URIs. Das bedeutet, dass Sie die Quelle eines Zyklusabbilds nur aus Dateien festlegen können, die vom XAP oder von Dateien in IsoStore installiert wurden.

Um entfernte Bilder in CycleTileData zu unterstützen, müssen Sie die Bilder in einem periodischen Hintergrund-Agenten herunterladen, sie in IsoStore speichern und dann die CycleTileData mit diesen Bildern aktualisieren. Push-Benachrichtigungen funktionieren hier nicht, da die Bilder lokal sein müssen und ShellTileSchedule auch nicht.

Stellen Sie sicher, dass Sie die Bilder unter "/ Shared / ShellContent" in IsoStore speichern und ihre URIs als "isostore: /Shared/Shellcontent/myImage.png" festlegen oder dass sie für die Startbildschirmkacheln nicht zugänglich sind.

Sehen wir uns ein Beispiel dafür an. Zuerst beginnen wir mit dem Schreiben eines parallelisierten Threaded-Algorithmus, der 9 Download-Threads startet, auf die Ergebnisse wartet und dann die Kacheln aktualisiert:

%Vor%

Als nächstes werden wir die 9 Bilder in den IsoStore "/ Shared / ShellContent" herunterladen. Wir werden besonders darauf achten, die neuen Threading-Flags für jeden Web-Download hinzuzufügen und das Flag als erledigt zu setzen, sobald sich die Datei im IsoStore befindet.

%Vor%

Schließlich aktualisieren wir die Live-Kachel, um die neuen Bilder in IsoStore zu verwenden.

%Vor%

Es gibt ein paar interessante Dinge zu beachten:

  1. Periodische Hintergrundagenten haben nur 25 Sekunden Zeit, um ihre Operation abzuschließen, daher kann es sinnvoll sein, einen Timer hinzuzufügen, wenn Mutex.WaitAll aktiviert wird und ein ordnungsgemäßer Fehler auftritt.
  2. Das Herunterladen von 9 Bildern in 25 Sekunden funktioniert unter bestimmten Netzwerkbedingungen unter Umständen nicht. Es empfiehlt sich daher, die Bilder zu optimieren. Sie können entweder weniger Bilder verwenden oder nur alle 30 Minuten ein paar Bilder aktualisieren.
  3. Das Aktualisieren der CycleTileData auf die gleichen Datei-URIs wird keine Aktualisierung der Kachel (AFAIK) auslösen. Sie benötigen also bessere Dateinamen als myImage0, sondern eindeutige Dateinamen für die Bilder.
JustinAngel 04.01.2013, 02:15
quelle
2

Bei CycleTile müssen die Bilder lokal sein. Sie könnten eine periodische Konfiguration einrichten Aufgabe , um die Bilder jedoch zu aktualisieren, und speichern Sie diese Bilder dann im speziellen Ordner shared / shellcontent im lokalen / isolierten Speicher (z. B. ms-appdata: ///local/shared/shellcontent/image01.png)

Sitzung 7 des Windows Phone 8 Jumpstart ist eine gute Referenz dafür - speziell um 25:30 Uhr.

    
Jim O'Neil 04.01.2013 00:49
quelle

Tags und Links