2010-11-18 4 views
4

In meiner App durch Drücken einer Taste Ich möchte öffnen UIWebView im Vollbildmodus, lädt die UIWebView eine HTML-Seite, die eine Schaltfläche enthält, die die UIWebView schließt und zurück zu AppSo schließen Sie die Seite in UIWebView und gehen Sie zurück zur App

Das Problem ist, dass ich den Button nicht schließen Sie die Seite schließen und zur App zurückkehren. Ich versuchte parent.history.back() und history.back und mehrere Versionen von self.close() aber nichts scheint zu funktionieren (BTW es in Browser arbeiten, aber nicht von UIWebView.

irgendeine Idee? Dank -Z

Antwort

10
[UIWebViewDelegate][1] has your answer 

    - (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request    
            navigationType:(UIWebViewNavigationType)navigationType { 
     if (request.URL == "SOME URL TO CLOSE WINDOW") { 
      //do close window magic here!! 
      [self stopLoading]; 
      return NO; 
     } 
     return YES; 
    } 
-(void)stopLoading{ 
    [_webView removeFromSuperview]; 
} 

    [1]: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIWebViewDelegate_Protocol/Reference/Reference.html 
+0

Es funktioniert, danke mann – zohar

0

Aktualisiert für Swift 3:

Wenn Sie die Seite von UIWebView schließen und zurück zur App gehen möchten, verwenden Sie unten code:

import UIKit 

class ViewController: UIViewController, UIWebViewDelegate{ 

    @IBOutlet weak var mWebView: UIWebView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     mWebView.delegate = self 
    } 

    override func viewWillAppear(_ animated: Bool) { 
     self.loadWebView() 
    } 

    func loadWebView() { 
     mWebView.loadRequest(URLRequest(url: URL(string: "https://stackoverflow.com/")!)) 
    } 

    func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool { 
     print("request: \(request.description)") 
     if request.description == "https://stackoverflow.com/users/login"{ 
      //do close window magic here!! 
      print("url matches...") 
      stopLoading() 
      return false 
     } 
     return true 
    } 

    func stopLoading() { 
     mWebView.removeFromSuperview() 
     self.moveToVC() 
    } 

    func moveToVC() { 
     print("Write code where you want to go in app") 
     // Note: [you use push or present here] 
     let vc = 
      self.storyboard?.instantiateViewController(withIdentifier: 
      "storyboardID") as! YourViewControllerName 
     self.navigationController?.pushViewController(vc, animated: true) 
    } 
} 
Verwandte Themen