Ich habe ein Webview, in dem ich die Youtube-Suchseite präsentiere. (https://www.youtube.com/results?search_query=) Ich möchte die Video-ID des Clips, den der Benutzer gedrückt hat, erhalten. Bisher habe ich das ohne Erfolg folgende versucht:Wie bekomme ich eine Video-ID von einem Klick auf die Youtube-Suchseite? Link in einer Webansicht
1) Verwendung von shouldOverrideUrlLoading - ist nicht aufgerufen wird, wenn auf dem Videoclip auf der Suche
public WebViewClient getWebViewClient()
{
return new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.d("TAG","called overide url");
if (url.startsWith(YOUTUBE_VIDEO_URL)) {
setVideoIdFromLink(url);
return true;
}
else
{
Log.d("GABI","url:"+url);
}
return false;
}
/*
public void onLoadResource (WebView view, String url){
if(url.startsWith(YOUTUBE_VIDEO_URL)){
setVideoIdFromLink(url);
}
}*/
};
}
2) Einstellen eines onTouchListener drücken - Methode immer wieder zurückkehren Typ 0 Extras null
private OnTouchListener linkClickTouch()
{
return new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
startClickTime = Calendar.getInstance().getTimeInMillis();
break;
}
case MotionEvent.ACTION_UP: {
long clickDuration = Calendar.getInstance().getTimeInMillis() - startClickTime;
if(clickDuration < MAX_CLICK_DURATION) {
v.performClick();
}
}
}
return true;
}
};
}
die Klick-Aktion:
private OnClickListener linkClick()
{
return new OnClickListener()
{
public void onClick(View v) {
final WebView webview = (WebView) v;
final WebView.HitTestResult result = webview.getHitTestResult();
Log.d("TAG", "result:"+result.getType()+"\nextras:"+
result.getExtra());
if (result.getType() == WebView.HitTestResult.SRC_ANCHOR_TYPE) {
}
if (result.getType() == WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE) {
}
if (result.getType() == WebView.HitTestResult.IMAGE_TYPE) {
}
}
};
}
Ich weiß, dass ich wahrscheinlich die Youtube-API verwenden kann, aber ich möchte das erreichen, ohne eine Suchaktivität aufzubauen, die Ergebnisse anzeigen wird, nur um die ID zu finden, wenn bereits eine anständige Suchseite existiert.
das Problem ist, dass die Methode nicht aufgerufen wird - den Code bedeutet, die Sie erwähnt nicht erreicht werden, gehen (ich nicht Log.d (siehe“ TAG "," overide url "); Massagen einmal auf den Clip klicken), ich denke, es hat etwas mit Javascript zu tun, um die Seite zu laden –