如何理解,webview 中的 link 是 YouTube link,以便在 YouTube 应用程序中打开它?lication

How understand, what link from webview is YouTube link, to open it in YouTube app?lication

我想,当用户点击网络视图时 link,它会打开 YouTube 应用。我如何解析这个 link,即我应该使用什么算法来知道它是否 link 在 youtube 视频上(确切的视频,而不是频道或简单的 YouTube 网站)。因为你可以有,例如youtube.com,或者youtu.be,所以这个问题的解决不是那么明显。可能我应该使用正则表达式,但我不确定它是正确的方法。可能有人会反编译 youtube 应用程序并查看此应用程序的来源以了解它如何理解以及它对 youtube 视频的纠正 link。感谢大家的帮助。

了解深层链接。它们在您的应用程序清单上声明,它们可以拦截任何类型的链接、主机或 URL 模式。

<intent-filter>
      ...
      <data android:scheme="https" android:host="www.youtube.com" />
      <data android:scheme="app" android:host="open.my.app" />
</intent-filter>

Official documentation

如果您需要拦截 WebView 中的链接,那么您可以在 shouldOverrideUrlLoading:

中添加一些逻辑
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    Uri uri = Uri.parse(url);
    if(url.equals("www.youtube.com/xxxx")) {
        launchYoutubeApp(url) ;
        return true;
    }
    
    if(uri.getHost().contains("youtube")) {
        view.loadUrl(url);
        return true;
    }
    //add here any condition you need in order of preference
    return false;
}