我有一个Webview,其中我提出YouTube搜索页面.(https://www.youtube.com/results?search_query=)我想接收用户按下的剪辑的视频ID.到目前为止,我已经尝试了以下没有成功:
1.使用shouldOverrideUrlLoading -在搜索中按下视频剪辑时未调用
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);
}
}*/
};
}
字符串
1.设置onTouchPad-方法总是返回类型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;
}
};
}
型
点击动作:
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) {
}
}
};
}
型
我知道我可能可以使用YouTube API,但我想在不构建搜索活动的情况下实现这一点,当一个像样的搜索页面已经存在时,搜索活动只会显示找到ID的结果。
2条答案
按热度按时间lfapxunr1#
经过多次尝试和错误:shouldOverrideUrlLoading或onPageStarted永远不会被调用。
你应该使用-
字符串
mpgws1up2#
尝试此操作以提取Youtude ID
字符串
在webview中
型