Apple Watch - Daten werden nur abgerufen, wenn die App auf dem Telefon aktiv ist.

Ich habe unsere Apple Watch Extension App mit dem Simulator entwickelt und bereitgestellt. Es wurde genehmigt und ist ab sofort im App Store erhältlich. Apple freut sich also!

Heute konnte ich eine physische Uhr in die Hände bekommen und habe ein echtes Problem entdeckt - ich kann nur mit watch-phone interagieren, wenn die App auf meinem Handy nicht nur geöffnet, sondern auch aktiv ist ... und so das Objekt besiegt.

Ich implementiere die folgende Methode in derappDelegate der Telefon-App als Proxy, um meine Live-Daten abzurufen und an die Uhr zurückzugeben.

Ich übergebe im Grunde eine Anfrage an dieappDelegate - Ich überprüfe die userInfo, für die Daten zurückgegeben werden sollen, dann erledigt die Telefon-App das Geschäft und gibt ein userInfo-Wörterbuch zurück, das Daten enthält, die von der Uhr analysiert werden sollen:

-(void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *))reply {

if ([userInfo objectForKey:@"GetWatchData"]) {

    [TPWatchData configureWatchData:^(BOOL success) {

        if (success) {

            reply([TPWatchData watchData]);

        } else {

            reply(@{@"FAIL":@"AppDelegate"});

        }


    }];

}

}

Ich rufe es in der Uhr mit diesem Ansatz auf demwatch extension (nur ein Beispiel für meine Anrufe):

    [TPWPlanList openParentApplication:@{@"GetWatchData":@1} reply:^(NSDictionary *replyInfo, NSError *error) {

    if ([replyInfo objectForKey:@"Overview"]) {

        if (error.code == 0) {

            if ([replyInfo objectForKey:@"FAIL"]) {

                // Something failed

            } else {

                self.dic_overview = [replyInfo objectForKey:@"Overview"];

                //[self reloadPlanListTable];

            }

        } else {

            // Something failed

        }

    }

}];

Wie bereits erwähnt, funktionierte dies perfekt im Simulator und tatsächlich perfekt auf der physischen Uhr - aber NUR, wenn ich die Haupt-App auf dem Telefon geöffnet und aktiv habe. Sobald sich die App im Hintergrund befindet oder das Display des Telefons in einem Ruhezustand befindet, werden mit der oben beschriebenen Methode keine Daten übertragen.

Irgendwelche Gedanken? Ich mache eindeutig etwas falsch, aber ich habe es geschafft, auf den Punkt zu kommen, an dem das Ganze live und auf realen Geräten läuft, bevor es mich gebissen ha

Danke vielmals

Antworten auf die Frage(2)

Ihre Antwort auf die Frage