0

如何将我的自定义 cookie 传递给 WKWebview 请求标头?因为它之前完全由 UIWebview 完成。(如果我错了,请纠正我)

只是你知道,我知道并阅读了以下几个链接:

  1. https://blog.bigbinary.com/2016/07/26/passing-request-headers-on-each-webview-request-in-react-native.html
  2. 在 Javascript 中为所有 http 请求添加自定义标头
  3. https://github.com/react-native-community/react-native-webview/blob/82af9559ef17692e4d1f653e47154071cbd9ea33/docs/Guide.md#working-with-custom-headers-sessions-and-cookies

我的用例: 假设 webview 标头应包含用户成功登录后从后端服务器返回的另一个 cookie,用于授权目的。

如何传递我的请求标头以确保 webview 中的每个后续页面加载都能获得它?

我试过的:

  1. 一旦我从 cookie 管理器中检索,在 prop 源设置自定义标头 THEN setState 为 cookie - 因此,当检索 cookie 时,应用程序会强制使用我的自定义标头重新渲染组件

网页浏览

<Webview
source={{ 
     uri: this.state.url,
     headers: {Cookie: this.state.cookie}
}}
onLoadStart={this.webviewOnLoadStart}
useWebKit={true}
sharedCookiesEnabled={true}
/>

webviewOnLoadStart

webviewOnLoadStart = async ({ nEvent }) => {
    const cookie = await ApiHelper.getSessionCookieString()
    if(this.state.cookie !== cookie){
      console.log('setting cookie ' + cookie);
      this.setState({
        cookie
      })
    }
};

环境

"react-native": "0.61.5",
"react-native-webview": "^10.3.2",
"@react-native-community/cookies": "^3.0.0",
4

0 回答 0