2

我正在尝试为我的共享点文档获取正确的重定向 URL,然后我可以使用它在 iOS 的 WebView 中打开文档。目前,我正在提供文档的绝对 URL,其中文档在 WebView 中呈现为 PDF(图像/只读)。而我想重定向到office webapp。现在我的问题是我不知道 Office Web 应用程序的 URL 是我可以构造的东西,例如附加 /_layouts/15/WopiFrame.aspx?sourcedoc= 还是基于安装自定义的 URL,我们需要调用一些 Sharepoint API将让我们知道 Wopi 服务的基本 URL 是什么。

目前我正在传递 URL,如 - https://.sharepoint.com/Shared%20Documents/demo/demo.docx 而我想传递 URL,如 - https://.sharepoint.com/_layouts/15/WopiFrame.aspx? sourcedoc=/Shared%20Documents/demo/demo.docx

期待帮助。提前致谢, Vishwesh

4

2 回答 2

4
File f = clientContext.Web.GetFileByServerRelativeUrl("/sites/  /Shared%20Documents/Title.docx");
clientContext.Load(f);
clientContext.ExecuteQuery();

ClientResult<String> result = f.ListItemAllFields.GetWOPIFrameUrl(SPWOPIFrameAction.Edit);

clientContext.Load(f.ListItemAllFields);
clientContext.ExecuteQuery();

result.Value 包含一个 URL,如下所示: http ://sharep.xxx:8080/sites/zxxx/_layouts/15/WopiFrame.aspx?sourcedoc=%2Fsites%2Fzxxx%2FShared%20Documents%2FTitle%2Edocx&action=edit

如果您根本不想点击共享点,您也可以从上面的页面中提取提取的 Office Web Apps URL。

于 2013-06-11T14:18:40.533 回答
0
using Microsoft.SharePoint.Client;
using Microsoft.SharePoint.Client.Utilities;

// Assume we have these variables:
// ctx: A valid client context
// serverRelativeUrl: the URL of the document

File f = ctx.Web.GetFileByServerRelativeUrl (serverRelativeUrl);
result = f.ListItemAllFields.GetWOPIFrameUrl(SPWOPIFrameAction.Edit);

ctx.Load(f.ListItemAllFields);
ctx.ExecuteQuery();

这建立在@thebitlic 的答案之上,这肯定是灵丹妙药!但是,他或她正在对服务器进行两次调用。通过 CSOM 批处理的奇妙之处,可以一次往返完成,根本不需要带回 File 对象。

于 2017-05-06T22:57:01.747 回答