Я сделал приложение iOS с Xcode и Swift.Xcode, Swift; Обнаружить гиперссылку нажмите в UIWebView
Я хочу открыть определенные гиперссылки в браузере Safari, там есть другие в WebView.
Чтобы достичь этого, мне нужно будет проверить, когда нажимается гиперссылка.
Это код, который я до сих пор:
//
// PushViewController.swift
// App
//
//
import UIKit
class PushViewController: UIViewController, UIWebViewDelegate {
@IBOutlet var openpushmessage: UIWebView!
var weburl:String = "http://www.example.com"
override func viewDidLoad() {
super.viewDidLoad()
let url: NSURL = NSURL(string: weburl)!
let requestURL: NSURLRequest = NSURLRequest(URL: url)
openpushmessage.loadRequest(requestURL)
}
override func webView(_ webView: UIWebView, shouldStartLoadWithRequest request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
if navigationType == .linkClicked
{
print("You clicked a hypelink!")
}
return true
}
}
Код в viewDidLoad()
открывает загружает основной URL (http://www.example.com) с моего сервера. Это прекрасно работает.
override fun webView[…]
следует определить, нажата ли гиперссылка, а затем print("You clicked a hypelink!")
.
Но, к сожалению, я получаю следующие ошибки:
Что я делаю неправильно? Как избавиться от этих ошибок?
Вы пробовали очистить проект? Также удалите ключевое слово переопределения. – Priyal
@Priyal Хорошо, я удалил 'override', и я очистил проект, но все тот же. Я теперь дополнительно получаю: «Использование необъявленного типа« URLRequest » – user7128548
Я скопировал ваш точный код. Решено предложения, после чего окончательный код является: 'FUNC WebView (_ Webview: UIWebView запрос shouldStartLoadWith: URLRequest, navigationType: UIWebViewNavigationType) -> Bool { если navigationType == .linkClicked { печать (" Вы нажали hypelink ! ") } return true }' и он не дает никаких ошибок или предупреждений. Я использую ** swift3 **, поэтому пришлось разрешить предупреждения. – Priyal