public static async Task <AccessState> RequestPermission(this IJSInProcessRuntime interop, string permission, string windowType) { if (!interop.IsFeatureAvailable(windowType)) { return(AccessState.NotSupported); } var result = await interop.Promise <string>("Shiny.requestPermission", permission); if (result == null) { return(AccessState.Unknown); } switch (result.ToLower()) { case "granted": return(AccessState.Available); case "denied": return(AccessState.Denied); default: return(AccessState.Unknown); } }