2017-08-18 2 views
0

Standard mis en place pour Watch OS> 2. WCSessionDelegate utilisé pour coordonner les données entre l'application principale et la surveillance.Communiquer des données entre le widget Extension WatchOS et Aujourd'hui

Groupe Une application "group.***********.TodayExtensionWidget" utilisé pour coordonner les données entre l'application principale et son widget Aujourd'hui Extension via UserDefaults(suiteName: "group.***********.TodayExtensionWidget")

Quand je fais un changement de la montre qu'il communique ce changement avec l'application principale. Ensuite, l'application principale (une fois lancée) la communique à l'extension Today. Ce que je voudrais faire est de communiquer le changement dans l'application de surveillance à l'extension Aujourd'hui sans avoir besoin de lancer l'application principale en premier.

Existe-t-il une meilleure pratique pour communiquer entre une application de surveillance et un widget Extension d'aujourd'hui?

Répondre

1

À l'heure actuelle, il n'y a aucun moyen d'y parvenir en utilisant des cadres intégrés. Depuis l'introduction de watchOS2, WatchKit applications sont considérées comme des applications indépendantes et pas seulement une extension de l'application iOS, donc vous ne pouvez pas utiliser AppGroups pour partager des données entre les deux et surtout ne peut pas l'utiliser pour partager des données entre l'application WatchKit et iOS extension.

Comme vous l'avez déjà expérimenté, WatchConnectivity ne peut pas être utilisé dans un Today extension, donc c'est également hors de l'image. Votre seule option est sous-optimale, car vous devrez télécharger vos données sur un serveur depuis votre application watchOS et la télécharger dans votre iOS Today extension. Bien sûr, cela génère une utilisation inutile des données, mais avec les frameworks actuels fournis par Apple, vous ne pouvez pas partager les données hors ligne.

Cependant, si vous attendez jusqu'à ce que watchOS4 est libéré (ou donner la version bêta un essai), vous pourriez être en mesure de tirer parti du cadre CoreBluetooth, qui devient disponible pour WatchKit dans watchOS4 pour communiquer entre une application WatchKit et un iOS extension hors ligne, en utilisant BLE. Je ne suis pas sûr à 100% si CoreBluetooth peut être utilisé dans iOS Extensions, mais vous devriez essayer si vous pouvez utiliser watchOS4 beta.

+1

Oui, je construis pour watchOS4. Im voulant seulement envoyer une corde ainsi ne crois pas que cela vaille la peine de regarder dans le CoreBluetooth. Espérait une solution de type centre de notification. Je suppose que malade attend juste qu'Apple le rende possible. – RyanTCB