作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 Swift 中的 WKWebView 开发了简单的 Web 浏览器。当我点击 Youtube 链接时,Youtube 应用程序会自动启动。我希望在我的网络浏览器中播放 Youtube 视频。我不需要启动 Youtube 应用程序。请帮助我。
这是我的示例代码。
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let webViewConfiguration = WKWebViewConfiguration()
webViewConfiguration.allowsInlineMediaPlayback = true
wkWebView.configuration.allowsInlineMediaPlayback = true
wkWebView.navigationDelegate = self
let myURL = URL(string: "https://www.google.com")
let youtubeRequest = URLRequest(url: myURL!)
wkWebView.load(youtubeRequest)
}
最佳答案
是的,你可以做到这一点。
首先,您需要在 webview 中设置 WKNavigationDelegate,然后在 webview:decidePolicyFor 方法中取消任何链接激活的 YouTube 请求,并强制其在您的 webview 中加载。
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
if navigationAction.navigationType == .linkActivated && navigationAction.request.url?.host?.hasSuffix("youtube.com") {
decisionHandler(.cancel)
DispatchQueue.main.async {
webView.load(navigationAction.request)
}
} else {
decisionHandler(.allow)
}
}
关于ios - 快速禁用 WKWebview 中的 Youtube 应用程序重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58291683/
我是一名优秀的程序员,十分优秀!