现在窗口代码中获取WebView对象,WebViewmyWeb=(WebView)findViewById(RidmyWeb);再使用getUrl()方法获取当前网址myWebgetUrl();
最近遇到关于获取webview加载网页上的点击事件,三种解决方式~~~
一、跟后台协商好,点击该按钮加载特定url,通过webview的代理方法- (BOOL)webView:(UIWebView )webView shouldStartLoadWithRequest:(NSURLRequest )request navigationType:(UIWebViewNavigationType)navigationType 判断加载的url是否是协商好的url;
ps:记得要return NO,否则会加载url
二、通过获取所点击按钮的来判断是否点击特定位置
1、给webview的scrollview添加手势
2、实现UIGestureRecognizerDelegate代理方法
documentelementFromPoint 是获取点击坐标的元素
三、通过注入一段JS(需跟web前端协商),返回一段json数据
1、在webview加载完后注入js(具体根据需求定义)
例子:
2、拦截自定义的字段 kqapp://
LZ你好
之所以不能返回是因为返回键的时候系统当做整个activity,而不是webview的历史页面
也就是说你必须消费掉back事件。
你可以覆盖activity中的方法
public
boolean
onKeyDown(int
keyCode,
KeyEvent
event)
{
if
((keyCode
==
KeyEventKEYCODE_BACK)
&&
mWebViewcanGoBack())
{
mWebViewgoBack();
return
true;
}
return
superonKeyDown(keyCode,
event);
}
这样就行,另外再提醒一点,如果在webview中点连接,默认的是会调用系统的浏览器
所以还需
mWebViewsetWebViewClient(new
WebViewClient(){
public
boolean
shouldOverrideUrlLoading(WebView
view,
String
url)
{
viewloadUrl(url);
return
true;
}
});
这样就能保证在webview中跳转
如果是捕获通过>
如果希望点击链接由自己处理,而不是新开Android的系统browser中响应该链接。给WebView加一个事件监听对象(WebViewClient)并重写其中的一些方法:shouldOverrideUrlLoading:对网页中超链接按钮的响应。当按下某个连接时WebViewClient会调用这个方法,并传递参数:按下的url。
webViewsetWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
viewloadUrl(url); //在当前的webview中跳转到新的url
return true;
}
});
以上就是关于如何获得当前页面的webviewid全部的内容,包括:如何获得当前页面的webviewid、webview获取网页点击事件、Android WebView怎么获取html iframe内部链接错误等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)