// 在尝试获取特殊权限时触发的事件,比如地理位置等 private void WebView2_PermissionRequested(WebView sender, WebViewPermissionRequestedEventArgs args) { /* * WebViewPermissionRequest - 特殊权限请求对象 * PermissionType - 特殊权限类型 * WebViewPermissionState - 特殊权限请求的状态(Unknown, Defer, Allow, Deny) * Uri - 请求特殊权限的 uri * Allow() - 授予请求的权限 * Deny() - 拒绝请求的权限 * Defer() - 延迟决定是否授予 */ WebViewPermissionRequest permissionRequest = args.PermissionRequest; }
void IWebViewPermissionRequestResolver.Deny(WebViewPermissionRequest permissionRequest) => permissionRequest.Deny();
Uri IWebViewPermissionRequestResolver.Uri(WebViewPermissionRequest permissionRequest) => permissionRequest.Uri;
void IWebViewPermissionRequestResolver.Allow(WebViewPermissionRequest permissionRequest) => permissionRequest.Allow();
WebViewPermissionType IWebViewPermissionRequestResolver.PermissionType(WebViewPermissionRequest permissionRequest) => permissionRequest.PermissionType;
WebViewPermissionState IWebViewPermissionRequestResolver.State(WebViewPermissionRequest permissionRequest) => permissionRequest.State;
/// <summary> /// Denies the requested permission. /// </summary> /// <param name="permissionRequest">The requested <see cref="WebViewPermissionRequest"/>.</param> public static void DenyWrapped(this WebViewPermissionRequest permissionRequest) => Resolver.Deny(permissionRequest);
uint IWebViewPermissionRequestResolver.Id(WebViewPermissionRequest permissionRequest) => permissionRequest.Id;
/// <summary> /// Grants the requested permission. /// </summary> /// <param name="permissionRequest">The requested <see cref="WebViewPermissionRequest"/>.</param> public static void AllowWrapped(this WebViewPermissionRequest permissionRequest) => Resolver.Allow(permissionRequest);
/// <summary> /// Gets the Uniform Resource Identifier (URI) of the content where the permission request originated. /// </summary> /// <param name="permissionRequest">The requested <see cref="WebViewPermissionRequest"/>.</param> /// <returns>The URI of the content where the permission request originated.</returns> public static Uri Uri(this WebViewPermissionRequest permissionRequest) => Resolver.Uri(permissionRequest);
/// <summary> /// Gets the current state of the permission request. /// </summary> /// <param name="permissionRequest">The requested <see cref="WebViewPermissionRequest"/>.</param> /// <returns>An enumeration value that indicates the current state of the permission request.</returns> public static WebViewPermissionState State(this WebViewPermissionRequest permissionRequest) => Resolver.State(permissionRequest);
/// <summary> /// Gets a value that indicates the type of permission that's requested. /// </summary> /// <param name="permissionRequest">The requested <see cref="WebViewPermissionRequest"/>.</param> /// <returns>An enumeration value that indicates the type of permission requested.</returns> public static WebViewPermissionType PermissionType(this WebViewPermissionRequest permissionRequest) => Resolver.PermissionType(permissionRequest);
/// <summary> /// Gets the identifier for the permission request. /// </summary> /// <param name="permissionRequest">The requested <see cref="WebViewPermissionRequest"/>.</param> /// <returns>The identifier for the permission request.</returns> public static uint Id(this WebViewPermissionRequest permissionRequest) => Resolver.Id(permissionRequest);