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]

Reply via email to