Frage

Es sieht so aus, als ob iOS 5.1 die Standard-URL-Kodierung für die Navigation eines Benutzers zu einer Einstellung beschädigt hat.

Zum Beispiel:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=TWITTER"]];

Funktioniert unter iOS 5.0, jedoch nicht unter iOS 5.1 (sowohl Gerät als auch Simulator).

Hat jemand eine Möglichkeit gefunden, diese Funktionalität in iOS 5.1 zu replizieren?

War es hilfreich?

Lösung

Nein, ich kenne keine Möglichkeit, diese Funktionalität zu replizieren.

Sie können jedoch eine Radarmeldung einreichen und die Wiederherstellung beantragen. Hier ist ein Radar fordert, dass die Pläne zunächst dokumentiert werden.

David Barnard hat bestätigt, dass iOS 5.1 die URL-Schemata der Einstellungs-Apps unterbricht.


Aktualisieren: iOS 8 verfügt über eine ähnliche Funktionalität zum Öffnen der Einstellungen Ihrer App.Danke Apple, Mike Und Soto_iGhost.

Die Konstante UIApplicationOpenSettingsURLString (UIApplication-Dokumentation) öffnet die Einstellungen für Ihre App und nicht beispielsweise die Twitter-Einstellungen.Nicht genau die gleiche Funktionalität, aber viel sauberer als zuvor und jetzt offiziell anerkannt.

Dies sollte jetzt besonders nützlich sein, da jede App in den Einstellungen einen Platz für die Verwendung von Datenschutz, Mobilfunkdaten, Hintergrundaktualisierung der App und Benachrichtigungen hat.

Andere Tipps

Es ist etwas knifflig, ich schaffe es, die Unteransichten zu entfernen *TWTWeetComposeViewController*, Daher wird nur eine Warnung angezeigt, wenn der Benutzer nicht angemeldet ist. Durch Klicken auf die Einstellungsschaltfläche können wir die Einstellungsseite in meiner App öffnen.

     + (void)setAlertForSettingPage :(id)delegate 
    {
     // Set up the built-in twitter composition view controller.
        TWTweetComposeViewController *tweetViewController = [[TWTweetComposeViewController alloc] init];


        // Create the completion handler block.
        [tweetViewController setCompletionHandler:^(TWTweetComposeViewControllerResult result) {
            [delegate dismissModalViewControllerAnimated:YES];
        }];

        // Present the tweet composition view controller modally.
        [delegate presentModalViewController:tweetViewController animated:YES];
        //tweetViewController.view.hidden = YES;
        for (UIView *view in tweetViewController.view.subviews){
            [view removeFromSuperview];
        }

     } 

Hier ist Delegate Ihr Viewcontroller. Wenn Sie diese Methode in Ihrem Viewcontroller verwenden, verwenden Sie sie einfach self anstatt delegate.

BEARBEITEN: Wenn Sie veraltete Fehler erhalten, verwenden Sie stattdessen den folgenden iOS6-kompatiblen Code:

- (void)setAlertForSettingPage
{
    // Set up the built-in twitter composition view controller.
    SLComposeViewController *tweetViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];

    // Present the tweet composition view controller modally.
    [self presentViewController:tweetViewController animated:YES completion:nil];
    for (UIView *view in tweetViewController.view.subviews){
        [view removeFromSuperview];
    }
}

Sie können das tun. generasacodicetagpre.

Wenn Sie in Twitters Framework (diesen Twitter View Controller) suchen, hat es "Prefs: root= twitter" innen, 5.1 hat auch diese Zeile.So machte Apple wahrscheinlich etwas, um es für andere Apps zu deaktivieren, wie ein besonderer Schlüssel in der Plist oder Methode "OpenURL" irgendwie überprüft, ob es keine System-App ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top