如何将我的自定义 cookie 传递给 WKWebview 请求标头?因为它之前完全由 UIWebview 完成。(如果我错了,请纠正我)
只是你知道,我知道并阅读了以下几个链接:
- https://blog.bigbinary.com/2016/07/26/passing-request-headers-on-each-webview-request-in-react-native.html
- 在 Javascript 中为所有 http 请求添加自定义标头
- https://github.com/react-native-community/react-native-webview/blob/82af9559ef17692e4d1f653e47154071cbd9ea33/docs/Guide.md#working-with-custom-headers-sessions-and-cookies
我的用例: 假设 webview 标头应包含用户成功登录后从后端服务器返回的另一个 cookie,用于授权目的。
如何传递我的请求标头以确保 webview 中的每个后续页面加载都能获得它?
我试过的:
- 一旦我从 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",