之前返回键失灵了,坑哭了 真的 一下午的时候搞出来了,所以记录一下也顺便分享给大家,当时真的怪自己粗心大意了各种的找bug后来解决就是在判断的时候条件的地方,不仅要判断链接还要 &&webView.canGoBack() 这一下bug就解决了。。。恕我学疏才浅
第一步:声明:
String webViewUrl;
第二步:在上一个页面跳转的时候获取这个链接
webViewUrl = getIntent().getStringExtra(“URL”);
我在跳转链接的时候的写法:
String name = getVipOnes.getUserName();
if(getVipOnes.getUserName()==null){
name ="亚热贷用户";
}
Intent intentHelp = new Intent(ruleVImp.context, WebActivity.class);
intentHelp.putExtra(WebActivity.URL, (Urls.ranking_wb() + "&" + "userName=" +name+ "&" + "userHead=" + getVipOnes.getUserHead()));
intentHelp.putExtra(WebActivity.TITLE, "分享有礼");
intentHelp.putExtra("123", "123");
intentHelp.putExtra("URL", (Urls.ranking_wb() + "&" + "userName=" +name+ "&" + "userHead=" + getVipOnes.getUserHead()));
startActivity(intentHelp);
第三步:在返回方法里面写个事页面自己写的返回
@Override
public void back(View view) {
//判断是否两级页面,如果是两级 返回
Log.i("webViewUrl:", webView.getUrl());
Log.i("webViewUrl:", webViewUrl);
if (!webViewUrl.equals(webView.getUrl())&& webView.canGoBack()) {
webView.goBack();
} else {
closeActivity();
}
}
返回键的返回方法 也就是手机上的返回键 (根据情况来定)
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//先拼出intent传进来的url的完整url
//打印 按下后退键时,webview的url是什么
Log.i("webViewUrl:", webView.getUrl());
Log.i("webViewUrl:", webViewUrl);
//多加一个判断 如果当前url和intent传进来的url是相等的 取反->走closeActivity()
if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack() && !webViewUrl.equals(webView
.getUrl())) {
webView.goBack();
return true;
} else {
closeActivity();
return super.onKeyDown(keyCode, event);
}
}
第四步:写好关闭方法
private void closeActivity() {
if (webView != null) {
final ViewGroup viewGroup = (ViewGroup) webView.getParent();
if (viewGroup != null) {
viewGroup.removeView(webView);
}
webView.destroy();
}
finish();
}