如何理解,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>
如果您需要拦截 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;
}
我想,当用户点击网络视图时 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>
如果您需要拦截 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;
}