Share via


DeferredPermissionRequest object

Note

The features described in this document are no longer being maintained. For more information on the new WebView2 control, see Introduction to Microsoft Edge WebView2 (Preview).

Represents a deferred request by the content of the webview for end-user permission to access specialized device functionality (such as geolocation, or pointer lock).

// In this sample, when we receive a permission request we construct some basic UI to ask the
// user if they want to give permission.
webview.addEventListener("MSWebViewPermissionRequested", permissionRequestedEventArgs => {
    const permissionRequest = permissionRequestedEventArgs.permissionRequest;
    const requestContainer = document.createElement("div");

    // We use this function as the handler for the allow and deny buttons.
    function completeDeferredPermissionRequest(allow) {
        // Find the DeferredPermissionRequest using the id of the PermissionRequest we deferred.
        const deferredPermissionRequest = webview.getDeferredPermissionRequestById(permissionRequest.id);
        if (allow) {
            deferredPermissionRequest.allow();
        }
        else {
            deferredPermissionRequest.deny();
        }
        requestContainer.parentElement.removeChild(requestContainer);
    }

    // Construct some simple UI to tell the user about the permission request and get their
    // feedback via the allow and deny buttons
    const description = document.createElement("span");
    description.textContent = "Allow " + uri + " to access " + type + "?";

    const allow = document.createElement("button");
    allow.textContent = "Allow";
    allow.addEventListener("click", () => completeDeferredPermissionRequest(true));

    const deny = document.createElement("button");
    deny.textContent = "Deny";
    deny.addEventListener("click", () => completeDeferredPermissionRequest(false));

    requestContainer.appendChild(description);
    requestContainer.appendChild(allow);
    requestContainer.appendChild(deny);
    document.body.appendChild(requestContainer);

    permissionRequest.defer();
});

Methods

allow

Allows the request for permission.

deferredPermissionRequest.allow();

Parameters

This method has no parameters.

Return value

This method does not return a value.

deny

Denies the request for permission.

deferredPermissionRequest.deny();

Parameters

This method has no parameters.

Return value

This method does not return a value.

Properties

id

A unique ID that can be used to correlate the current DeferredPermissionRequest with a PermissionRequest object from a previous MSWebViewPermissionRequested event. See the PermissionRequested.defer method.

This property is read-only.

var id = deferredPermissionRequest.id;
Property value

Type: Unsigned long

type

The type of permission being requested. This may be one of the following string values:

  • geolocation: access to location data via navigator.geolocation.
  • unlimitedIndexedDBQuota: allow IndexedDB APIs to ignore the usual stored data size limit.
  • media: access to the microphone and camera via navigator.getUserMedia.
  • pointerlock: ability to lock and control the mouse pointer via Element.requestPointerLock.
  • webnotifications: ability to show desktop notifications via window.Notification.
  • screen: ability to take screen shots via the Media Capture API.
  • immersiveview: ability to control a VR display.

This property is read-only.

var type = deferredPermissionRequest.type;

Property value

Type: String

uri

The Uniform Resource Identifier (URI) of the document requesting permission.

This property is read-only.

var uri = deferredPermissionRequest.uri;
Property value

Type: String

Requirements

Minimum supported client Windows 10 [Windows Store apps only]
Minimum supported server Not supported
Minimum supported phone Not supported