如何获得Android的WebView中的HTML页面元素(按钮,输入,图像) [英] How to get the HTML page elements (button, input, Images ) in Android WebView
本文介绍了如何获得Android的WebView中的HTML页面元素(按钮,输入,图像)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我加载在我的网页视图在线HTML页,希望对spacific按钮从HTML网页在线(而不是从本地的HTML页)
点击加载活动我找到了一些东西,但没有响应对我的要求。
在此输入code
在此输入code @覆盖
保护无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_main); web视图=(的WebView)findViewById(R.id.webView);
webView.getSettings()setJavaScriptEnabled(真)。
webView.getSettings()setPluginsEnabled(真)。
webView.setHorizontalScrollBarEnabled(假);
webView.loadUrl(https://accounts.google.com/DisplayUnlockCaptcha);
webView.setBackgroundColor(00000000);
webView.setOnTouchListener(新View.OnTouchListener(){
@覆盖
公共布尔onTouch(视图V,MotionEvent事件){
// TODO自动生成方法存根
WebView.HitTestResult HR =((的WebView)V).getHitTestResult();
Log.i(测试在OnTouch,getExtra =+ hr.getExtra()+\\ t \\ t TYPE =+ hr.getType()+
\\ t \\ t Ancher标签=+ HitTestResult.SRC_ANCHOR_TYPE +
\\ t \\ t Ancher标签=+ HitTestResult.UNKNOWN_TYPE +
\\ t \\ t Ancher标签=+ HitTestResult.ANCHOR_TYPE
);
返回false;
}
});}
解决方案
INT ANCHOR_TYPE HitTestResult击中一个HTML ::标签
INT EDIT_TEXT_TYPE HitTestResult击中编辑文本区域
INT EMAIL_TYPE HitTestResult击中的电子邮件地址
INT GEO_TYPE HitTestResult击中地图地址
INT IMAGE_ANCHOR_TYPE HitTestResult击中一个HTML ::其中包含标记HTML :: IMG
INT IMAGE_TYPE HitTestResult击中一个HTML :: img标签
INT PHONE_TYPE HitTestResult击中一个电话号码
INT SRC_ANCHOR_TYPE HitTestResult击中一个HTML ::一个标签,SRC = HTTP
INT SRC_IMAGE_ANCHOR_TYPE HitTestResult击中一个HTML ::有标签SRC = HTTP + HTML :: IMG
INT UNKNOWN_TYPE默认HitTestResult,其中目标是未知
HitTestResult类只有两个方法。
getExtra():它返回的字符串。字符串有一个由用户点击HTML元素
的getType():它返回整数。它是用来识别HTML元素是由用户点击
公共类MyWebView延伸活动{
/ **当第一次创建活动调用。 * /
字符串标记= this.getClass()getSimpleName()。
西弗吉尼亚州的WebView;
@覆盖
公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.main);
WV =(的WebView)findViewById(R.id.MyWebView);
wv.getSettings()setJavaScriptEnabled(真)。
wv.setWebViewClient(新VideoWebViewClient());
wv.getSettings()setUserAgentString(Mozilla的/ 4.0(兼容; MSIE 5.01; Windows NT的5.0));
wv.loadUrl(http://www.w3schools.com/html/tryit.asp?filename=tryhtml_form_radio);
wv.setOnTouchListener(新View.OnTouchListener(){ 公共布尔onTouch(视图V,MotionEvent事件){
WebView.HitTestResult HR =((的WebView)V).getHitTestResult(); Log.i(TAGgetExtra =+ hr.getExtra()+\\ t \\ t TYPE =+ hr.getType());
返回false;
}
});
}
私有类VideoWebViewClient扩展WebViewClient {
@覆盖
公共布尔shouldOverrideUrlLoading(的WebView视图,字符串URL){ view.loadUrl(URL); 返回false;
} } }
I am loading online html page in my Webview, And want to load activity against the spacific button clicked from html online page (not from local HTML page)
I find some thing but that is not responding against my requirement.
enter code here
enter code here@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setPluginsEnabled(true);
webView.setHorizontalScrollBarEnabled(false);
webView.loadUrl("https://accounts.google.com/DisplayUnlockCaptcha");
webView.setBackgroundColor(0x00000000);
webView.setOnTouchListener(new View.OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
WebView.HitTestResult hr = ((WebView)v).getHitTestResult();
Log.i("TESTING In OnTouch ", "getExtra = "+ hr.getExtra() + "\t\t Type=" + hr.getType()+
"\t\t Ancher Tag = " +HitTestResult.SRC_ANCHOR_TYPE+
"\t\t Ancher Tag = " +HitTestResult.UNKNOWN_TYPE+
"\t\t Ancher Tag = " +HitTestResult.ANCHOR_TYPE
);
return false;
}
});
}
解决方案
int ANCHOR_TYPE HitTestResult for hitting a HTML::a tag
int EDIT_TEXT_TYPE HitTestResult for hitting an edit text area
int EMAIL_TYPE HitTestResult for hitting an email address
int GEO_TYPE HitTestResult for hitting a map address
int IMAGE_ANCHOR_TYPE HitTestResult for hitting a HTML::a tag which contains HTML::img
int IMAGE_TYPE HitTestResult for hitting an HTML::img tag
int PHONE_TYPE HitTestResult for hitting a phone number
int SRC_ANCHOR_TYPE HitTestResult for hitting a HTML::a tag with src=http
int SRC_IMAGE_ANCHOR_TYPE HitTestResult for hitting a HTML::a tag with src=http + HTML::img
int UNKNOWN_TYPE Default HitTestResult, where the target is unknown
HitTestResult class has only two method.
getExtra() : It return String. String has HTML element which is clicked by user
getType() : It return integer. It is used to identify which HTML element is clicked by user.
public class MyWebView extends Activity {
/** Called when the activity is first created. */
String TAG = this.getClass().getSimpleName();
WebView wv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
wv = (WebView) findViewById(R.id.MyWebView);
wv.getSettings().setJavaScriptEnabled(true);
wv.setWebViewClient(new VideoWebViewClient());
wv.getSettings().setUserAgentString("Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
wv.loadUrl("http://www.w3schools.com/html/tryit.asp?filename=tryhtml_form_radio");
wv.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
WebView.HitTestResult hr = ((WebView)v).getHitTestResult();
Log.i(TAG, "getExtra = "+ hr.getExtra() + "\t\t Type=" + hr.getType());
return false;
}
});
}
private class VideoWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return false;
}
}
}
这篇关于如何获得Android的WebView中的HTML页面元素(按钮,输入,图像)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文