Я уже пытался получать текущий URL моего UIWebViewс: webview.request.URL. К сожалению, он NSURLбыл пуст. Что-то здесь не так? Я работаю с Xcode 3.2.2 beta 5.
Приведенный выше код должен выполняться в UIWebViewделегате didStartLoad.
Сделайте этот код currentURL = currentWebView.request.URL.absoluteString; после загрузки веб-представления используйте - (void) webViewDidFinishLoad: (UIWebView *) webView. Может, это поможет.
Xcoder
OP, учитывая, что у этого вопроса 78k просмотров, на него довольно хорошо ссылаются. Не могли бы вы обновить принятый ответ на тот, который получил больше голосов, чтобы предотвратить путаницу в будущем? Спасибо!
Альберт Реншоу
Ответы:
45
Версия Мэтта намного чище. Я рекомендую всем использовать этот вместо этого
Спасибо. Мой код выше работает при выполнении в didFinishLoad .... Я где-то читал, что версия js не работает на каждой странице. Но я попытаюсь.
danielreiser
11
Мэтт, его версия намного чище. Так что да, я рекомендую всем использовать его вместо этого.
Rengers
1
Это единственный способ, например, на m.youtube.com. Все остальные ответы возвращают неправильные URL-адреса.
cprcrack
2
На самом деле я оцениваю "document.URL", а не "window.location" (который для меня всегда был пустым). Это полезно для внутренних корректировок URL-адреса страницы на сайтах с интенсивным использованием JS, которые могут не использовать традиционную загрузку страниц.
SmartyP 08
1
Обращаясь к двум людям выше - Аубаде Тальжо и Таранфксу - Ренгерс довольно смело (буквально, текст выделен жирным шрифтом) и смиренно отметил, что люди должны использовать версию Мэтта с более чем 230 лайками ниже. Очевидно, что на момент ответа на этот вопрос это сработало и было принято, и более 30 человек почувствовали, что это тоже работает. Сейчас ему 5,5 лет. Хороший материал, Ренджерс. Спасибо, что указали людям на ответ Мэтта ниже.
App Dev Guy
317
window.location через JS у меня не работал надежно, но это сработало:
Вы получите неверный URL, если ваш сайт загрузит рекламу в другом запросе. Более четкий вариант написалMark Sands
OdNairy
не работает для результатов поиска гугла. При доступе к результатам поиска из Google он показывает мне URL-адрес Google, а не URL-адрес страницы результатов поиска. Любая помощь .........
Нирав Гадхия
@iOSDeveloper Google, вероятно, использует состояние push "HTML5" для управления URL-адресом, что не связано с выполнением другого запроса (поэтому currentWebView.request не обновляется).
danw 01
3
Этот метод, похоже, не работает, если веб-сайт сделал history.pushState
andrrs
1
В Swift 4: webView.request? .MainDocumentURL? .AbsoluteString
DmitryKanunnikoff
55
вот код, который я использую для получения URL-адреса каждый раз, когда вы переходите по другой ссылке в веб-просмотре:
Я использую shouldStartLoadWithRequestсобытие (UIWebViewDelegate), чтобы отслеживать обновления URL. request.mainDocumentURL.absoluteStringпредоставит вам URL-адрес основной веб-страницы (обычно это то, что вы хотите), а также request.URL.absoluteStringбудет включать CSS и JavaScript.
Ответы:
Версия Мэтта намного чище. Я рекомендую всем использовать этот вместо этого
Вы можете попробовать это:
источник
window.location через JS у меня не работал надежно, но это сработало:
Кредит: http://mohrt.blogspot.com/2008/10/getting-url-from-uiwebview.html
источник
Mark Sands
вот код, который я использую для получения URL-адреса каждый раз, когда вы переходите по другой ссылке в веб-просмотре:
источник
webView.request.URL.absoluteString
вернулсяnil
Я тоже обнаружил, что утвержденный ответ выше не был надежным. Но с небольшими изменениями, похоже, каждый раз работает:
Обратите внимание на добавление «.href» в Javascript, поскольку он скрыт в конце строки кода.
источник
Это неверно и вернет ноль:
Однако приведенный ниже код может получить URL-адрес, но этот URL-адрес может не быть текущим URL-адресом:
Правильный:
источник
источник
Пробовал это для результатов поиска Google на iPhone:
Оба возвращают одну и ту же строку!
источник
вот код, который я использую:
источник
webView.request.URL
?Поскольку UIWebView устарел, для WKWebview получить текущий URL-адрес очень просто.
источник
Я использую
shouldStartLoadWithRequest
событие (UIWebViewDelegate), чтобы отслеживать обновления URL.request.mainDocumentURL.absoluteString
предоставит вам URL-адрес основной веб-страницы (обычно это то, что вы хотите), а такжеrequest.URL.absoluteString
будет включать CSS и JavaScript.источник
Это всегда работает. .
источник
реализовать метод делегата,
URL - это именно то, что вам нужно.
источник
IN Swift попробуйте это,
источник
Чтобы получить текущий URL-адрес WKWebView и UIWebview
Вот код.
источник