deleteCookie method
- required WebUri url,
- required String name,
- String path = "/",
- String? domain,
- @Deprecated("Use webViewController instead") InAppWebViewController? iosBelow11WebViewController,
- InAppWebViewController? webViewController,
Removes a cookie by its name
for the given url
, domain
and path
.
The default value of path
is "/"
.
webViewController
is used for deleting the cookie (also session-only cookie) using JavaScript (cookie with isHttpOnly
enabled cannot be deleted, see: https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#restrict_access_to_cookies)
from the current context of the WebView managed by that controller when you need to target iOS below 11, MacOS below 10.13 and Web platform. JavaScript must be enabled in order to work.
In this case the url
parameter is ignored.
NOTE for iOS below 11.0 and MacOS below 10.13: If webViewController
is null
or JavaScript is disabled for it, it will try to use a HeadlessInAppWebView
to delete the cookie (session-only cookie and cookie with isHttpOnly
enabled won't be deleted!).
NOTE for Web: this method will have effect only if the iframe has the same origin.
If webViewController
is null
or JavaScript is disabled for it, it will try to use a HeadlessInAppWebView
to delete the cookie (session-only cookie and cookie with isHttpOnly
enabled won't be deleted!).
Supported Platforms/Implementations:
- Android native WebView
- iOS (Official API - WKHTTPCookieStore.delete
- MacOS (Official API - WKHTTPCookieStore.delete
- Web
Implementation
Future<void> deleteCookie(
{required WebUri url,
required String name,
String path = "/",
String? domain,
@Deprecated("Use webViewController instead")
InAppWebViewController? iosBelow11WebViewController,
InAppWebViewController? webViewController}) async {
assert(url.toString().isNotEmpty);
assert(name.isNotEmpty);
webViewController = webViewController ?? iosBelow11WebViewController;
if (await _shouldUseJavascript()) {
await _setCookieWithJavaScript(
url: url,
name: name,
value: "",
path: path,
domain: domain,
maxAge: -1,
webViewController: webViewController);
return;
}
Map<String, dynamic> args = <String, dynamic>{};
args.putIfAbsent('url', () => url.toString());
args.putIfAbsent('name', () => name);
args.putIfAbsent('domain', () => domain);
args.putIfAbsent('path', () => path);
await _channel.invokeMethod('deleteCookie', args);
}