开发移动文档查看器

上次修改时间: 2011年2月2日

适用范围: SharePoint Foundation 2010

本主题介绍如何创建承载文档查看器的移动网页,用户可以通过这些文档查看器在移动设备中查看特定应用程序格式(如字处理器或电子表格应用程序)的文档。这样,移动最终用户便可在自己的移动设备上打开 Microsoft SharePoint Foundation 文档库中的文件。某些移动设备可能具有适用于文档类型的内置查看器。可对响应系统进行配置,以检查请求设备是否具有此类查看器,如果有,则可以选择允许在设备的浏览器而不是您的浏览器中打开请求的文档。

提示提示

基于 Microsoft SharePoint Foundation 构建的产品(包括 Microsoft SharePoint Server 等 Microsoft 产品)可以而且已经包含移动文档查看器和承载页。在启动某个文档查看器项目之前,请注意已提供了哪些可用功能。

概述

使移动文档查看器可供 SharePoint Foundation 解决方案用户使用的过程主要分为两个部分:

  • 创建查看器承载页。

  • 注册该查看器网页。

创建查看器承载页

移动查看器承载页通常是您部署到每台前端 Web 服务器上的 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\Layouts\Mobile 文件夹中的一个 aspx 文件。对于该网页的内容,没有绝对的要求。网页的核心通常是对可以显示指定类型文档的控件的引用。还可能存在其他一些控件,用于启用与文档类型相关的编辑、分页或其他功能。

注册网页

若要注册网页,需创建一个名为 mdocview_*.xml 的 XML 文件,其中 * 是有效文件名字符的一些字符串。建议使用您公司名称或不会与其他文档查看器提供商所用名称重复的其他一些字符串。该网页将部署到所有前端 Web 服务器上的 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\Config 中。

该文件的顶部节点是一个 MobileDocViewers 元素。至少要添加一个子 MobileDocViewer 元素。下面是 MobileDocViewer 元素的示例:

<MobileDocViewers>
  <MobileDocViewer Name="xps" FilePath="/_layouts/mobile/mxps.aspx" QueryId="doc" AppendSourceUrl="true" />

</MobileDocViewers>

Name 属性用于标识查看器能够显示的文件类型的文件扩展名。FilePath 属性用于标识网站相对路径和您创建用于承载查看器的文件的文件名。QueryId 属性用于指定 URL 查询的关键字;在此示例中,会在查看器承载页 URL 的末尾附加"?doc="。AppendSourceUrl 属性用于指定是否应将用户要查看的文档的 URL 附加到 URL 末尾。在此示例中,由于该属性值为 true,因此将附加 URL。相应地,用于查看位于 http://MyServer/Shared Documents/File.xps 的文档库中文件 File.xps 的相对于网站的完整 URL 将为 /_layouts/mobile/mxps.aspx?doc=http:%2F%2FMyServer%2FShared%20Documents%2FFile%2Exps。

建议您将网页打包为一个可在网站集级别激活或停用的功能。如果这样做,您的 MobileDocViewer 元素还会具有一个按 GUID 标识此功能的 FeatureId 属性。下面是一个示例。

<MobileDocViewers>
  <MobileDocViewer Name="xps" FilePath="/_layouts/mobile/mxps.aspx" QueryId="doc" AppendSourceUrl="true" 
                   FeatureId="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" />

</MobileDocViewers>

如果查看器可以打开具有多种文件扩展名的文档,请为每个扩展名添加单独的 MobileDocViewer 元素。

对于您的查看器打开的文档类型,如果请求设备具有自己的查看器,则位于 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\CONFIG\Browsers 的 compat.browser 文件中可以有一个指示此功能的浏览器条目。例如,Windows Mobile 7.0 电话有一个 Office 移动客户端,可在移动电话中打开某些 Microsoft Office 文档类型。compat.browser 中用于此客户端的条目如下所示。

<browser id="OfficeMobileClient" parentID="default">
  <identification>
    <userAgent match="^Office Mobile Web Access$" /> 
  </identification>
  <capabilities>
    <capability name="isMobileDevice" value="true" />
    <capability name="overrideMobileDocViewerRedirection" value="true" />
  </capabilities>
</browser>

名为 overrideMobileDocViewerRedirection 的 capability 元素设置为 true。这意味着,此浏览器可以查看特定的 Microsoft Office 文档类型。

通过向 MobileDocViewer 元素中添加子 BrowserCondition 元素,可以让浏览器自己的查看器替代您的查看器。BrowserCondition 元素会检查请求设备是否拥有自己的浏览器,如果有,则会将请求从您的查看器承载页重定向到其他某些请求处理程序。例如,下面的 MobileDocViewer 指定在 mWord.aspx 文件中打开 docx 文件。但是,如果浏览器拥有自己的查看器,则会将请求转移至 MobileDocHandler.ashx。

<MobileDocViewer Name="docx" FilePath="/_layouts/mobile/mWord.aspx" FeatureId="8DFAF93D-E23C-4471-9347-07368668DDAF" QueryId="doc" AppendSourceUrl="true" >
  <BrowserCondition Id="overrideMobileDocViewerRedirection" Value="true">
    <Override FilePath="/_layouts/MobileDocHandler.ashx" AppendSourceUrl="false" />
  </BrowserCondition>
</MobileDocViewer>

请勿将术语 overrideMobileDocViewerRedirection 重用作功能名称,因为该功能表示 Office 移动客户端查看器。请创建要使用的术语。例如,如果某一类型的浏览器拥有 XPS 查看器,则可向 compat.browser 文件中添加该浏览器的条目并为其指定 capability 元素,使用 CanViewXPS 作为 name 属性的值。然后,向 MobileDocViewer 元素中添加 BrowserCondition 子元素,并使用 CanViewXPS 作为 Id 属性的值。

请参阅

概念

使用 SharePoint Foundation 进行移动开发

构建基块:移动页、控件和适配器