2017-08-16 2 views
1

Wir haben eine App, die einen Benutzer eine Zahlung erfordert. Wir haben einen Drittanbieter, der die Zahlungen abwickelt. Wenn der Nutzer eine Zahlung leistet, wird er auf unserer Website auf das Zahlungsportal auf der Website des Drittanbieters weitergeleitet und nach der Zahlung auf unsere Website weitergeleitet.Open Website von App und Redirect Zurück

Ich wurde beauftragt, das Gleiche in unserer iOS Swift 3 App zu implementieren. Ich habe eine Vorstellung davon, was ich tun möchte, aber ich bin nicht ganz sicher, wie ich es machen soll. Ich fing an zu denken, dass ich den Browser des Benutzers mit einer POST-Anfrage öffnen könnte (ich weiß jetzt, dass ich nicht kann) und dann Universal Linking nutze, um die Weiterleitung mit der App zu bekommen, sobald die Zahlung abgeschlossen ist.

Da ich keine POST-Anfragen auf dem Browser des Benutzers tun kann, dachte ich, ich würde ein UIWebView in meiner App implementieren. Grundsätzlich habe ich den Code dafür. Meine Frage ist. Wie erfasse ich die Umleitung vom UiWebView? Soweit ich das beurteilen kann, wird das UIWebView bei erfolgreicher Bezahlung aktiv bleiben und die Seite wird umgeleitet werden, so dass unsere Webseite innerhalb unserer App angezeigt wird. Das ist nicht was ich will.

Kann jemand einen besseren Weg erklären, dies zu tun? Kein Code erforderlich, wird aber sehr geschätzt.

Antwort

2

Ja, es ist möglich und viele Apps machen das gleiche. Es gibt verschiedene Methoden, es zu tun, aber was ich tue, kann ich teilen. Ich öffne die Zahlungsseite im Webview und nach Erfolg auf der Zahlungsseite. Die Seite wird mit SuccessURL zur Success-Seite umgeleitet. Wenn SuccessURL/FailedURL (Predefined) geladen wurde, bringe ich den Benutzer zurück zur nativen App.

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {  
    if request.url == "sucessURL" { 
    //do whatever you want 
    return false 
    } 
    if request.url == "failedURL" { 
    ////do whatever you want 
    return false 
    } 
    else { 
    return true 
    } 

}

+0

Brilliant! Danke Kumpel! –