通过 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)

Android:WebView 中的 Twitter - 通过回调返回 Activity

android webview如何获取网页输出的提示信息

Android WebView 调试方法

通过android webview自动登录网站的问题

android WebView 通过听筒或蓝牙播放音频