我正在开发一个应用程序,YouTube.com已嵌入到WebView中。当我点击任何视频时,视频无法播放(它永远处于加载状态)。因此,当用户点击视频播放按钮时,我会尝试使用VideoView或YouTubePlayerFragment播放视频。我的问题是:有没有办法检测用户是否点击了播放按钮?
我在WebView上添加了下面的监听器,但hr不足以告诉使用点击播放按钮。
webView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
WebView.HitTestResult hr = ((WebView)v).getHitTestResult();
return false;
}
});
答案 0 :(得分:-1)
经过调查,我使用其他帖子中提供的解决方案: WebView link click open default browser 和Support for other protocols in Android webview
webView.setWebViewClient(new WebViewClient() {
...
@Override
public void onPageFinished(WebView view, String url) {
String string = "YouTube URL regular expression";
if (url.toLowerCase().matches(string)) {
launchInBrowserOrYouTubeApp(url);
}
}
...
}
此解决方案仍有一个问题。当我第一次点击任何视频时,会触发此方法并且网址为www.youtube.com' (网址是' www.youtube.com/watch?v = ajsdfhjh'当我第二次点击任何视频或更多时),这在初始化webview时完全相同。所以我无法分辨是用户点击视频还是webview初始化。