android webView 当用loadDataWithBaseURL加载本地html时如何实现后退到上一页面

简单来说就是加载A页面后点击里面的链接跳转到B页面(B也为本地页面),这时想通过点击返回键退回到A页面,之前试过canGoBack()发现在loadDataWithBas... 简单来说就是加载A页面后点击里面的链接跳转到B页面(B也为本地页面),这时想通过点击返回键退回到A页面,之前试过canGoBack()发现在loadDataWithBaseURL中无法实现,请高手赐教 展开
 我来答
水镜Sahib
推荐于2017-09-15 · TA获得超过668个赞
知道小有建树答主
回答量:140
采纳率:100%
帮助的人:117万
展开全部
LZ你好
之所以不能返回是因为返回键的时候系统当做整个activity,而不是webview的历史页面
也就是说你必须消费掉back事件。
你可以覆盖activity中的方法
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
这样就行,另外再提醒一点,如果在webview中点连接,默认的是会调用系统的浏览器
所以还需
mWebView.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
这样就能保证在webview中跳转
更多追问追答
追问
你的这个方法我之前就试过了,我目前的情况是我在A页面调用loadUrl加载网络地址,然后再在B页面用loadDataWithBaseURL加载本地html时无法跳转上一页面,B页面的mWebView.canGoBack()的返回值为false,也就是说并没有真正意义上的A到B,我试过A和B的getUrl()都是同一个路径,并且路径是loadUrl时的网络地址
追答
A页面加载网络地址?那么B页面不是网络地址了吗?再在B页面调用本地页面?抱歉LZ,没太明白你的意思。
MaeHsu
推荐于2017-09-23 · TA获得超过1.1万个赞
知道小有建树答主
回答量:5783
采纳率:88%
帮助的人:235万
展开全部
不能返回是因为返回键的时候系统当做整个activity,而不是webview的历史页面
也就是说你必须消费掉back事件。
你可以覆盖activity中的方法
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
这样就行,另外再提醒一点,如果在webview中点连接,默认的是会调用系统的浏览器
所以还需
mWebView.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
这样就能保证在webview中跳转
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
baikewsp
2015-08-16 · TA获得超过1万个赞
知道小有建树答主
回答量:4588
采纳率:42%
帮助的人:691万
展开全部
LZ你好
之所以不能返回是因为返回键的时候系统当做整个activity,而不是webview的历史页面
也就是说你必须消费掉back事件。
你可以覆盖activity中的方法
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
这样就行,另外再提醒一点,如果在webview中点连接,默认的是会调用系统的浏览器
所以还需
mWebView.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
这样就能保证在webview中跳转
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaozukun
2012-08-23
知道答主
回答量:27
采纳率:0%
帮助的人:15.3万
展开全部
这个技术好像还没人可以实现吧!!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金牛喵星人2
2015-08-04 · TA获得超过386个赞
知道答主
回答量:110
采纳率:0%
帮助的人:26.3万
展开全部
采纳我,再告诉你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式