我是Swift的新手,我正在制作一个可以显示youtube视频的webview应用。我的问题是我不希望我的用户转到另一个网址或类似的东西。我想让我的应用程序加载youtube.com。我使用HTML而不是URL,因为我可以告诉我的webview它将具有什么样的高度和宽度。
HTML code:
<html><head><style type=\"text/css\">body {background-color: transparent;color: white;}</style></head><body style=\"margin:0\"><iframe frameBorder=\"0\" height=\"" + String(describing: height) + "\" width=\"" + String(describing: width) + "\" src=\"http://www.youtube.com/embed/" + vid.videoId + "?showinfo=0&modestbranding=1&frameborder=0&rel=0\"></iframe></body></html>
答案 0 :(得分:0)
您可以尝试使用shouldStartLoadWith
UIWebViewDelegate
委托方法
extension UIViewController: UIWebViewDelegate {
public func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
let url = request.url?.absoluteString ?? ""
print("WebView shouldStartLoadWithRequest url -> \(url)")
if !url.contains("youtube.com") {
// avoid loading strange urls..
// manage error as you need..
webView.stopLoading()
return false
}
return true
}
}
请务必在UIViewController
方法中将UIWebView
设为viewDidLoad
代理:
override func viewDidLoad() {
super.viewDidLoad()
myWebView.delegate = self
}