Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Inserción de una vista previa de archivo en un iFrame
Es posible obtener una vista previa de una amplia gama de archivos en el explorador sin usar una aplicación especial. Entre los archivos admitidos, puede ver PDF, JPG, MP4, etc.
Para obtener una vista previa de un archivo en , iframedebe
- Llamar al punto de conexión de vista previa driveItem de Graph y obtener getUrl
- Use la dirección URL de un iFrame (o incluso ábrala en una página nueva)
Obtención de la dirección URL de vista previa mediante Graph
Microsoft Graph ofrece el siguiente punto de conexión para obtener una vista previa de un archivo:
POST https://graph.microsoft.com/{version}/drives/{driveId}/items/{itemId}/preview
-
Versiones la versión de Graph. Por ejemplo, "v1.0" - Es el
driveIdidentificador de contenedor (comienza por "b!") - ,
itemIdque es el identificador del elemento de unidad.
Si usa el SDK de C# de Microsoft Graph, el código sería similar al siguiente:
ItemPreviewInfo preview = await graphServiceClient
.Drives[driveId]
.Items[itemId]
.Preview()
.Request()
.PostAsync();
La respuesta JSON incluye las direcciones URL de vista previa de cada documento. Use el obtenido en getUrl:
{
"getUrl": "https://www.onedrive.com/embed?foo=bar&bar=baz",
"postParameters": "param1=value¶m2=another%20value",
"postUrl": "https://www.onedrive.com/embed_by_post"
}
Sugerencia
Es posible quitar el banner en la parte superior agregando el parámetro nb=true a la dirección URL obtenida. Por ejemplo, https://contoso.sharepoint.com/restOfUrl/embed.aspx?param1=value&nb=true
Precaución
Actualmente getUrl contiene un parámetro con un token cifrado que solo se puede usar con la aplicación. Sin embargo, esto puede cambiar pronto y es posible que se le pida que agregue un encabezado de autenticación como lo hace con otras solicitudes.
Uso de la dirección URL en un iframe
El siguiente paso es simplemente usar la dirección URL obtenida en el paso anterior en una página nueva. Podría tener un punto de conexión en la aplicación que sirva a una nueva página como similar a esta:
<!DOCTYPE html>
<html>
<body>
<h2>Preview</h2>
<p>Preview of {file name}:</p>
<iframe src="{preview URL}" height="200" width="300" id="preview" title="Iframe Example"></iframe>
</body>
</html>
Carga dinámica de la vista previa del documento
Si tiene intención de cargar dinámicamente la vista previa en la misma página sin salir de ella, puede obtener un error de CORS si intenta acceder al punto de conexión de Microsoft Graph directamente desde un script de la página.
Una manera de solucionar este problema es crear un punto de conexión en la aplicación que realice la solicitud y devuelva la dirección URL.
Por ejemplo, el código del lado servidor debe obtener primero la dirección URL de vista previa del documento:
[HttpGet]
[AuthorizeForScopes(Scopes = new string[] { "Files.Read.All" })]
public async Task<ActionResult<string>> GetPreviewUrl(string driveId, string itemId)
{
// Obtain tokens for the the request
// Use the function created in the first step
return url + "&nb=true"; //Use nb=true to suppress banner
}
A continuación, la aplicación del lado cliente puede usar la API del fetch explorador para solicitar e insertar la dirección URL en iframe:
async function preview(driveId, itemId) {
const url = `/GetPreviewUrl?driveId=${driveId}&itemId=${itemId}`;
const response = await fetch(url, {
credentials: 'include',
}).then(response => response.text());
document.getElementById('preview').src = response + "&nb=true"; //Use nb=true to suppress banner
}
Vista previa de PDF
SharePoint Embedded incluye una vista previa de PDF que puede mejorar con los parámetros de consulta anexados a la propiedad driveItem webUrl . Para obtener webUrl, llame a la API GET driveItem, por ejemplo GET /drives/{drive-id}/items/{item-id}?$select=webUrl, y recupere el webUrl campo.
Los parámetros se pasan como una cadena de consulta codificada en embed JSON:
<webUrl>?&embed={"<param1>":<value>,"<param2>":<value>}
Puede incluir uno o varios parámetros en el mismo objeto.
Nota:
Se agregarán parámetros de consulta adicionales a esta sección a medida que se expanda la vista previa de PDF.
Imprimir (mpp)
Habilita el icono de impresión y la funcionalidad Ctrl+P.
<webUrl>?&embed={"mpp":true}
Sticky Notes (mpsn)
Muestra el contenido de las notas pegajosos si las notas pegajosos están presentes en el PDF.
<webUrl>?&embed={"mpsn":true}