So übertragen Sie ein UIImage mit Watch Connectivity

8

Wie kann ich eine UIImage über WatchConnectivity vom iPhone auf die Apple Watch ohne Benutzerinteraktion auf dem Telefon übertragen und lädt nur, weil die Uhr programmgesteuert darauf zugreift. Ich brauche das, weil die Bildverarbeitung zum Erstellen der UIImage Logik verwendet, die in der Watchkit-API nicht verfügbar ist, also muss sie vom Telefon erstellt werden. Ich habe einige Beispiele für Watch Connectivity mit:

%Vor%

Allerdings bin ich neu, um das Kit und iOS im Allgemeinen zu beobachten und bin verwirrt darüber, wie man diesen Session-Manager benutzt, insbesondere um von der Uhr zum Gerät zu gehen statt umgekehrt, wie ich es in Online-Beispielen sehe. Kann jemand bitte ein Beispiel geben, wie man dies sowohl auf der Uhr als auch auf dem Telefon macht, um ein UIImage auf dem Handy von der Uhr aus anzurufen?

    
modesitt 13.10.2015, 22:40
quelle

3 Antworten

10

Um Dateien zwischen Ihrem iPhone und Ihrer Apple Watch zu übertragen, sollten Sie Watch Connectivity verwenden, indem Sie WCSession verwenden, um die Kommunikation richtig zu handhaben. Sie können eine UIImage als NSData senden, indem Sie die Methode didReceiveMessageData delegate von WCSessionDelegate verwenden.

Als Erstes sollten Sie Ihre UIImage in NSData und umgekehrt konvertieren. Sie können dafür den folgenden Code verwenden:

Bei PNG-Bildern

%Vor%

Wenn JPG-Bilder

%Vor%

Dann können Sie die WCSession verwenden, um die Nachricht wie folgt zu senden:

  

ViewController.swift

%Vor%
  

InterfaceController.swift

%Vor%

Im obigen Code, wenn Sie das ViewController öffnen, sendet es das UIImage , das obige Beispiel dient nur zu Lernzwecken, Sie müssen es in Bezug auf die Komplexität Ihres Projekts besser handhaben.

>

Ich hoffe, das hilft Ihnen.

    
Victor Sigler 14.10.2015, 00:03
quelle
0

Sie müssen Ihr Bild als NSData übertragen und dann auf der Uhrseite dekodieren. Sie können sich meinen Blogbeitrag ansehen, in dem ich einen ähnlichen Fall behandelt habe. Ссылка

Dies ist nicht die Art, es mit der Sitzung zu machen, da ich es damals nicht bemerkt habe, aber vielleicht wird es dir helfen, die ganze Logik zu verstehen.

    
Eluss 13.10.2015 22:49
quelle
0

Wenn Sie WCSessionDelegate in InterfaceController verwenden, denken Sie daran, die Methode activationDidCompleteWith zu erweitern:

%Vor%     
Alessandro Mattiuzzi 23.01.2018 14:00
quelle