[英]How to get the HTML page elements (button, input, Images ) in Android WebView
I am loading online html page in my Webview, And want to load activity against the specific button clicked from html online page (not from local HTML page) 我正在Webview中加载在线html页面,并希望针对从html在线页面(而非本地HTML页面)单击的特定按钮加载活动
I find some thing but that is not responding against my requirement. 我发现了一些东西,但这并没有回应我的要求。
@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) {
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. HitTestResult类只有两种方法。
getExtra() : It return String. getExtra():返回字符串。 String has HTML element which is clicked by user
字符串具有用户单击的HTML元素
getType() : It return integer. getType():返回整数。 It is used to identify which HTML element is clicked by user.
它用于标识用户单击了哪个HTML元素。
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;
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.