Как добавить UIWebView в мое приложение для iOS?

У меня есть приложение в тот момент, когда нажатие кнопки на первом экране выполняет некоторую работу и делает URL-адрес, а затем делает

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

который запускает Safari с моим URL. Я хочу вместо этого запустить веб-просмотр, чтобы пользователь мог делать с ним какие-то пользовательские вещи. Я все еще чертовски понимаю MVC в iOS и нуждаюсь в помощи. Мой проект минимален и состоит из AppDelegate.h/m и ViewController.h/m, а .m диспетчера представлений - это функция, которая запускает этот запуск Safari.

Может ли кто-нибудь помочь мне понять, как делать то, что я пытаюсь сделать?

Спасибо...

Ответы

Ответ 1

Самый простой способ - просто добавить UIWebView при нажатии кнопки. Добавьте этот метод в свой ViewController.m, и это будет выполняться при нажатии кнопки.

Программный:

//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];
}

Использование построителя интерфейса:

1) Добавьте к интерфейсу объект UIWebView.

2) Установите для свойства "скрытое" значение (в окне "Инспектор атрибутов" в "Конструкторе интерфейсов" ). Вы сохраните его скрытым, пока не захотите его показать.

3) Добавьте следующий код в свой ViewController.h, под другими строками @property:

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

4) Добавьте следующую строку ниже @synthesize в ViewController.m

@synthesize webView;

И добавьте [webView release]; в метод dealloc.

5) Вернитесь в IB и нажмите "File Owner" и подключите выход webView к созданному webView.

6) Добавьте следующий метод вместо метода, показанного выше (для программного примера):

//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; 
}

Вы можете настроить метод IBAction для ответа на нажатие кнопки, но похоже, что у вас уже есть кнопка, которая работает, поэтому я не стал бы этого беспокоиться.

Что касается добавления кнопки над веб-представлением, вы можете либо подклассифицировать веб-представление, либо добавить кнопку там, либо просто создать отдельную кнопку, которую вы определяете в своем nib или программно, и скрыть, что webView "избавляется от это".

Ответ 2

Для добавления UIWebView с помощью Swift в приложение просто перетащите WebView на свою панель рассказов, а затем с помощью помощника редактора подключите WebView к ViewController.swift И тогда загрузка URL-адреса в WebView очень проста. Просто создайте WebView в своем раскадровке, а затем вы можете использовать следующий код для загрузки URL-адреса.

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

Проще всего это только 3 строки кодов:)

Ссылка: Пример UIWebView

Ответ 3

Поскольку это лучший результат в Google, если вы можете использовать WKWebView вместо UIWebView, вы должны.

import WebKit

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