Frage

Ich will den Benutzer, eine Vereinbarung zu akzeptieren, bevor die Anwendung gestartet wird. So in dem appDelegate.m Ich habe folgende:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    defaults = [NSUserDefaults standardUserDefaults];

    if(![defaults boolForKey:@"warningAccepted"]){
        UIAlertView *alert;
        alert = [[[UIAlertView alloc] initWithTitle:@"Warning" message:@"Message... To continue, select \"OK\". To close the app, select \"Cancel\"." delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil] autorelease];
        [alert show];
    }

    return YES;
}

- (void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
    if (buttonIndex == 0){
        [defaults setBool:YES forKey:@"warningAccepted"];
        [defaults synchronize];

        if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
            [window addSubview:mainNavController.view];
        } else {
            [window addSubview:tabBarController.view];
        }

        [window makeKeyAndVisible];
    } else {
        // Close App, User hit cancel.
        UIAlertView *alert;
        alert = [[[UIAlertView alloc] initWithTitle:@"App Cannot Continue" message:@"The application cannot run until warning is accepted." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil] autorelease];
        [alert show];
    }

}

Ein Problem ist, dass die sonst nie, wenn Abbrechen der Benutzer Treffer aufgerufen wird. Das andere Problem ist, dass ich nicht sicher bin, wie die App aus fort stoppen. Von dem, was ich gefunden habe, von Apple nicht mag, dass Sie die Anwendung schließen erzwingen. Ist das korrekt? Wie soll ich mich über diese umzusetzen? Vielen Dank für Ihre Hilfe.

War es hilfreich?

Lösung

Ja, wird Apple Ihren Antrag ablehnen, wenn Sie zum Beenden zwingen. Ich kann sagen ;-) Ein weiterer UIAlertView sagen, dass der Benutzer nicht ohne die Annahme fortsetzen kann, sollte den Trick de (Just keine Taste auf sie setzen, damit der Benutzer sie nicht entlassen kann)

über den anderen Umfang, nicht passiert es nicht durch sie oder die UIAlertView nicht zeigen? Prüfen Sie es mit einem Haltepunkt. Weiter mehr, ist nicht, wenn (buttonIndex == 0) bedeutet, dass der Benutzer berührt die Schaltfläche „Abbrechen“

Andere Tipps

Ich habe Erfolg gehabt mit dieser Delegatmethode statt:

- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex

Und stellen Sie sicher, dass Ihre Anwendung die cancelButtonIndex und firstOtherButtonIndex Eigenschaften des Alertview verwendet, so dass Sie die richtige Taste zu verarbeiten; Ich denke, die Abbruchtaste in der Regel Index Null ist im Moment aber dies könnte möglicherweise ändern.

Der empfohlene Weg, um eine EULA zu handhaben ist, es zu unterwerfen, wenn Sie die Anwendung iTunes einreichen. Dies ermöglicht ein Endbenutzer die EULA vor dem Herunterladen der Anwendung zu lesen.

Wenn Sie den Benutzer erzwingen möchten, bevor eine EULA zu akzeptieren, um die Anwendung zu verwenden, sollten Sie vielleicht die Vereinbarung in eine HTML-Datei setzen, die Sie innerhalb der Anwendung einbetten können. Zeigen Sie den HTML-Code in einer UIWebView, wenn Ihre Anwendung startet. (Nur ein paar Zeilen Code.) Versuchen Sie nicht, es in einen Alarm zu drücken.

Sie sind nicht auf „exit“ die Anwendung erlaubt. können Sie möchten die EULA in einer Webansicht mit „Übernehmen“ und „Ablehnen“ Optionen in einer Symbolleiste oder als Schaltflächen auf der Webseite präsentieren. Wenn der Benutzer „Decline“, dann können Sie eine Benachrichtigung zu fragen Pop dann die App aus dem Gerät zu löschen. Die Idee ist, dass sie das Webansicht scrollen können, aber nicht fortgesetzt werden, bis sie akzeptieren getroffen.

Ich bin nicht sicher, ob Apple dies zulässt, wird es sicherlich Ihre Endbenutzer vereiteln.

für Problem Nummer zwei: ja von Apple nicht will, um die Anwendung zu beenden. Aber was können Sie tun, um den Benutzer zu zwingen, die App auf seinem eigenen zu verlassen: einfach zeigen einen leeren Bildschirm. Aber ich bin nicht sicher, ob Apple würde auch dies zulassen, weil es als „keine Funktionalität“ zu sehen.

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