通过 WebView (Android Studio) 导航到时,Youtube 在应用程序中启动
Posted
技术标签:
【中文标题】通过 WebView (Android Studio) 导航到时,Youtube 在应用程序中启动【英文标题】:Youtube launches in an appliaction when navigated to via WebView (AndroidStudio) 【发布时间】:2019-11-08 09:08:32 【问题描述】:我有一个简单的程序,它应该在应用启动时在 webView 中加载 youtube 网站,但该应用只是打开原生 Youtube 应用程序,但我需要它在 webView 中打开 Youtube 网站。
我尝试查看 webView 设置中的“属性”部分,但找不到任何可以强制在 webView 中打开此类网站的内容。
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView web = findViewById(R.id.webV);
web.loadUrl("https://www.youtube.com/");
我希望在我的 WebView 应用中打开“www.youtube.com”网站,而不是在当前打开的原生 Youtube 应用中。
【问题讨论】:
【参考方案1】:这是由于 youtube 视频 url 在浏览器中打开并且浏览器将其重定向到本机应用程序
添加以下代码
web.setWebViewClient(new WebViewClient());
更新
当用户在您的 WebView 中单击网页中的链接时, 默认行为是让 android 启动一个应用程序来处理 网址。通常,默认 Web 浏览器会打开并加载目标 网址。但是,您可以为您的 WebView 覆盖此行为,因此 链接在您的 WebView 中打开。然后,您可以允许用户 在他们的网页历史中前后导航 由您的 WebView 维护。
要打开用户点击的链接,只需提供一个 WebViewClient 用于 您的 WebView,使用 setWebViewClient()。
【讨论】:
谢谢,这解决了问题,您能否澄清一下这段代码究竟是如何阻止像 youtube 这样的网站通过应用程序打开的 - 代码的含义是什么?谢谢以上是关于通过 WebView (Android Studio) 导航到时,Youtube 在应用程序中启动的主要内容,如果未能解决你的问题,请参考以下文章
Android:请求关注通过WindowManager添加的视图(WebView)