1.最近做一个功能是这样的:app里内嵌了webview,在app登录后,webview里的网页不知道登录了,进入后依然跳转到登录页。解决方案是把服务端返回的sessionId加到webview的请求头里。
加了这句话后,点击网页里面的内容,还是需要登陆,因为这种方案是只在第一次进入这个url的时候加了请求头。
map.put("authToken",attr.getSessionId());
webView.loadUrl(attr.getIndex(),map);
2.我们需要每次点击网页里的内容都加上头,搜出了这种方案:
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url,headerMap);
return true;
}
});
后来发现这个方法没有被执行,查了一下是在安卓7.0以后废弃了,请使用下面这个方法
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request){
view.loadUrl(request.getUrl(),headerMap);
return false;
}
3.但是,这两个方法都没有走,不知道为什么啊,然后我写了一个看不见的webview,悄悄登录了一下,总算解决了,至于为什么这俩方法没走,请大佬看到指点,谢谢。