lubbo opened a new pull request, #1024:
URL: https://github.com/apache/cordova-plugin-inappbrowser/pull/1024
### Platforms affected
- iOS
- Android (WIP)
### Motivation and Context
It's currently not possible to set cookies and request headers when opening
the IAB.
### Description
I'm adding two new options:
- headers
- key/value map json serialized and base64 encoded
- cookies
- key/value map json serialized and base64 encoded
- key is the cookie URL
- value is the json serialized and base64 encoded header Set-Cookie string
### Limitations
- iOS Cookies are set only if iOS11+
### Testing
From JS side open the IAB with following options:
```
const headers = {
Authorization: `Bearer exampleAccessToken`,
};
const headersString = JSON.stringify(headers);
//Needed because JS->Native parameters serialization uses = to key/value
separator
const headersBase64 = btoa(headersString).replaceAll('=', '@');
const cookieOption: CookieSerializeOptions = {
domain: 'www.mydomain.com',
secure: true,
path: '/',
sameSite: 'strict',
};
const serializedCookie = cookie.serialize(
'TEST_NAME',
'TEST_VALUE',
cookieOption,
);
const cookies = {
['https://www.mydomain.com']: serializedCookie,
};
const cookiesString = JSON.stringify(cookies);
//Needed because JS->Native parameters serialization uses = to key/value
separator
const cookiesBase64 = btoa(cookiesString).replaceAll('=', '@');
const options = {
cookies: cookiesBase64,
headers: headersBase64,
}
if (options && typeof options !== 'string') {
options = Object.keys(options)
.map((key: string) => `${key}=${(options as
InAppBrowserOptions)[key]}`)
.join(',');
}
var ref = cordova.InAppBrowser.open('https://apache.org', '_blank', options);
```
### Checklist
- [?] I've run the tests to see all new and existing tests pass ()
- [?] I added automated test coverage as appropriate for this change
- [x] Commit is prefixed with `(platform)` if this change only applies to
one platform (e.g. `(android)`)
- [x] If this Pull Request resolves an issue, I linked to the issue in the
text above (and used the correct [keyword to close issues using
keywords](https://help.github.com/articles/closing-issues-using-keywords/))
- [ ] I've updated the documentation if necessary
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]