webview_cookie_manager_flutter 3.1.0
webview_cookie_manager_flutter: ^3.1.0 copied to clipboard
Have you been turned into a cookie management problem? This package can help. It has all of the cookie management functionality you have been looking for.
Webview Cookie Manager Flutter #
A flutter library to manager your web cookies for Android (API level 9+), iOS (11+), and macOS (10.13+).
The cookies stores and retrieves using the httpCookieStore for iOS and macOS, and CookieManager for Android.
This package was forked from https://github.com/fryette/webview_cookie_manager due to an inactive maintainer.
Get started iOS #
Set minimum version for iOS to 11.0
Get started macOS #
Set minimum version for macOS to 10.14 (Note: While the plugin supports macOS 10.13, Flutter requires macOS 10.14 as minimum deployment target)
Usage #
The WebCookieManager can be used directly or together with webview_flutter.
Get cookies #
final cookieManager = WebviewCookieManager();
final gotCookies = await cookieManager.getCookies('https://youtube.com');
for (var item in gotCookies) {
print(item);
}
Set a cookie #
await cookieManager.setCookies([
Cookie('cookieName', 'cookieValue')
..domain = 'youtube.com'
..expires = DateTime.now().add(Duration(days: 10))
..httpOnly = false
]);
Check is any cookie available #
await cookieManager.hasCookies();
Remove a cookie #
await cookieManager.removeCookie();
Clear cookies #
await cookieManager.clearCookies();
Domain attribute #
Domain attribute is not required according to RFC, but it is important to remember that empty domain causes undefined behavior. So it is highly reccommended to specify it this this way:
final cookie = Cookie('cookieName', 'cookieValue')..domain = 'youtube.com';
Secure attribute #
If you see the error Strict Secure Cookie policy does not allow setting a secure cookie for http://your-domain.net/ for apps targeting >= R. Please either use the 'https:' scheme for this URL or omit the 'Secure' directive in the cookie value. Then you need to set the origin while setting the cookie, in that case setting the domain is not required.
final cookies = <Cookie>[];
// Add your cookie with secure flag to the array
cookieManager.setCookies(cookies, origin: 'https://your-domain.net')
Troubleshooting on iOS #
- Set minimum target iOS version to 11 (see also #17)
- If you are using Objective C, check that PodFile have a flag use_frameworks (see also #4)
target 'Runner' do
use_frameworks!
use_modular_headers!
..........
end
Troubleshooting on macOS #
- Set minimum target macOS version to 10.13
- Ensure that PodFile has the use_frameworks flag
target 'Runner' do
use_frameworks!
use_modular_headers!
..........
end