Android webview'中缺少自定义标题;goBack()请求

Android webview'中缺少自定义标题;goBack()请求,android,webview,http-headers,Android,Webview,Http Headers,我通过调用以下命令将自定义标题添加到所有webview的请求中: webview.loadUrl(url, myHeaders) 和重载webview客户端的: shouldOverrideUrlLoading() 浏览和深入链接时,所有请求都有自定义标题,但所有webview的goBack()请求没有shouldOverrideUrlLoading() 我想知道如何确保自定义标题始终包含在goBack()请求中?通常,当返回导航历史记录时,WebView会重新发送额外的标题,我已经对其进行

我通过调用以下命令将自定义标题添加到所有webview的请求中:

webview.loadUrl(url, myHeaders)
和重载webview客户端的:

shouldOverrideUrlLoading()
浏览和深入链接时,所有请求都有自定义标题,但所有webview的
goBack()
请求没有<调用
goBack()
时,不调用code>shouldOverrideUrlLoading()


我想知道如何确保自定义标题始终包含在
goBack()
请求中?

通常,当返回导航历史记录时,WebView会重新发送额外的标题,我已经对其进行了简要测试,它似乎可以工作。然而,有几个时刻可能令人困惑,因此我建议重新检查您的场景中到底发生了什么:

  • 当您调用
    goBack()
    ,WebView甚至可能不会重新联系服务器以加载页面——它可以从缓存中恢复页面。为了强制从服务器重新查询页面,服务器必须使用
    缓存控制
    标题:
    缓存控制:无缓存,无存储
    禁用页面缓存。在这种情况下,如果页面通过带有额外标题的
    loadUrl
    加载,这些标题将被重新发送

  • 如果用户在加载了额外标题的页面上单击链接,则这些标题不会被您导航到的页面“继承”(JS代码所做的导航也是如此)。因此,如果您正在调用
    goBack
    ,并且上一页已从用户单击中加载,则不会通过
    loadUrl
    加载起始页的任何额外标题

  • shouldOverrideUrlLoading
    仅对由用户或服务器操作引起的加载调用,而不是对通过WebView API方法启动的加载调用,如
    loadUrl
    goBack
    ,因为应用程序已经知道它将在WebView的某个位置导航。例如,如果您正在通过
    loadUrl
    加载
    google.com
    ,原始导航将不会被
    shouldOverrideAllowing
    截获,但服务器所做的重定向(例如,重定向到
    https
    页面)将被删除

  • 希望能有帮助。如果您仍然怀疑WebView没有重新发送额外的头,我强烈建议您准备一个简单的复制案例来证明这一点