web-dev-qa-db-de.com

Wie füge ich meiner iOS-App eine UIWebView hinzu?

Ich habe im Moment eine App, die beim Drücken einer Taste auf dem ersten Bildschirm funktioniert und eine URL erstellt, und das dann auch

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:currentURL]];

dadurch wird Safari mit meiner URL gestartet. Ich möchte stattdessen einen Webview-Start von hier aus, damit der Benutzer einige benutzerdefinierte Dinge damit tun kann. Ich habe immer noch verdammt viel Zeit damit, MVC in iOS zu verstehen und brauche Hilfe. Mein Projekt ist minimal und besteht aus einem AppDelegate.h/m und einem ViewController.h/m, in dem.m des View Controllers befindet sich die Funktion, die diesen Safari-Start ausführt.

Kann mir jemand helfen zu verstehen, wie ich das mache, was ich versuche zu tun?

Vielen Dank...

15
cdietschrun

Am einfachsten ist es, wenn Sie eine UIWebView hinzufügen, wenn die Schaltfläche gedrückt wird. Fügen Sie diese Methode zu ViewController.m hinzu, und lassen Sie dies ausführen, wenn die Schaltfläche gedrückt wird.

Programmatisch:

//This method should get called when you want to add and load the web view
- (void)loadUIWebView
{
    UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.bounds];  //Change self.view.bounds to a smaller CGRect if you don't want it to take up the whole screen
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:currentURL]]];
    [self.view addSubview:webView];
    [webView release];
}

Interface Builder verwenden:

1) Fügen Sie Ihrer Schnittstelle ein UIWebView-Objekt hinzu.

2) Setzen Sie die Eigenschaft "hidden" auf "checked" (im Fenster "Attributes Inspector" im Interface Builder). Du wirst es versteckt halten, bis du es zeigen willst.

3) Fügen Sie Ihrem ViewController.h den folgenden Code unter den anderen @ property-Zeilen hinzu:

@property (nonatomic, retain) IBOutlet UIWebView *webView;

4) Fügen Sie die folgende Zeile unterhalb von @synthesize in ViewController.m ein

@synthesize webView;

Fügen Sie in der Dealloc-Methode [webView release]; hinzu.

5) Gehen Sie zurück zu IB und klicken Sie auf den Besitzer der Datei, und verbinden Sie den WebView-Ausgang mit dem von Ihnen erstellten WebView.

6) Fügen Sie die folgende Methode anstelle der oben gezeigten Methode hinzu (für das Programmbeispiel):

//This method should get called when you want to add and load the web view
- (void)loadUIWebView
{
    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:currentURL]]];
    self.webView.hidden = NO; 
}

Sie könnten eine IBAction-Methode einrichten, um auf das Drücken der Taste zu reagieren, aber es klingt, als hätten Sie bereits eine Taste gedrückt, sodass ich mich jetzt nicht damit beschäftige.

Wenn Sie eine Schaltfläche über der Webansicht hinzufügen, können Sie entweder die Webansicht untergliedern und die Schaltfläche dort hinzufügen oder einfach eine eigene Schaltfläche in Ihrer Feder definieren oder programmgesteuert die WebView ausblenden, um sie "loszuwerden".

27
Ned

Um UIWebView mit Swift zu Ihrer App hinzuzufügen, ziehen Sie das WebView einfach in Ihr Storyboard und verbinden Sie WebView dann mit einem Assistenten-Editor mit ViewController.Swift . Das Laden der URL in WebView ist dann sehr einfach. Erstellen Sie einfach eine WebView in Ihrem Storyboard. Anschließend können Sie den folgenden Code zum Laden von URLs verwenden. 

    let url = NSURL (string: "https://www.simplifiedios.net");
    let request = NSURLRequest(URL: url!);
    webView.loadRequest(request);

So einfach wie das nur 3 Zeilen Code :) 

Ref: UIWebView-Beispiel

1
Shaba Aafreen

Da dies das beste Ergebnis bei Google ist, sollten Sie WKWebView anstelle von UIWebView verwenden.

import WebKit

let webViewConfiguration = WKWebViewConfiguration()
let webView = WKWebView(frame: CGRect(), configuration: webViewConfiguration)
0
Alan Zeino