Как добавить UIWebView в мое приложение для iOS? - PullRequest
15 голосов
/ 23 марта 2011

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

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

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

Спасибо ...

Ответы [ 3 ]

28 голосов
/ 23 марта 2011

Самый простой способ - просто добавить 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];
}

Использование Interface Builder:

1) ДобавитьОбъект UIWebView для вашего интерфейса.

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

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

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

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

@synthesize webView;

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

5) Вернитесь в IB и нажмите на Владелец файла, иподключите выход 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 для ответа на нажатие кнопки, но, похоже, у вас уже работает нажатие кнопки, поэтому я бы не стал беспокоиться об этом сейчас.

Что касается добавления кнопки над веб-представлением, вы можетелибо создайте подкласс веб-представления и добавьте туда кнопку, либо просто добавьте отдельную кнопку, которую вы определили в своем кончике или программно, и в ней скрывается веб-представление, чтобы «избавиться от него».

1 голос
/ 15 октября 2016

Для добавления 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

0 голосов
/ 27 июля 2017

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

import WebKit

let webViewConfiguration = WKWebViewConfiguration()
let webView = WKWebView(frame: CGRect(), configuration: webViewConfiguration)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...