天道酬勤,学无止境

How to customize SharePoint 2010 mobile view

I am stuck on developing a mobile view for my SP2010 publishing portal. It is Internet-facing with custom pages / web parts (e.g. http://server/Pages/customPage.aspx with custom webparts on it). The site has a custom master page.

I am having the following issues with the built-in mobile functionality:

  1. The welcome page. Navigating to http://server/?Mobile=1 redirects me to http://server/_layouts/mobile/mbllists.aspx, which just shows a table of lists / document libraries available. For my portal, I want to show a dashboard, just like I currently do for the "normal" non-mobile view.

  2. Navigating to one of my custom pages (e.g. http://server/Pages/customPage.aspx?Mobile=1) also redirects to http://server/_layouts/mobile/mbllists.aspx.

So in effect there is really no helpful built-in mobile support at all; just the ability to view lists with a mobile device.


So I have a number of issues and I'm hoping for some high-level help. My thought is that I should do the following tasks:

  1. Create a separate master page for mobile
  2. Figure out how to choose this master page based on "is client a mobile device?"
  3. Figure out how to prevent the redirection to /_layouts/mobile/mbllists.aspx

Then I think the mobile site will operate similarly to the normal site.

Am I on the right track?


[Edit]

With what I have seen from links from @moontear and other research I've done, it sounds like my best option is to just disable built-in SharePoint mobile support, and just do my own conditional rendering based off of Request.Browser.IsMobileDevice.

评论

Check out the extensive MSDN documentation about how to customize Mobile Views:

  • How to: Customize Mobile List View and Form Pages

when you check out that page you can see that you can already change the layouts of the list forms and maybe that is enough for you - but as you said you want a custom "Dashboard", you probably want to look into how the mobile redirection works:

  • Overview of Mobile Pages and the Redirection System

You can set which device is treated as mobile device by editing the compat.browse file as explained in this post: SP2010 Branding Tip #6 – Mobile Browsers, this way the device you set is shown your regular Sharepoint page (answering your questions 2/3).

Copy the "_layouts/mobile" folder to e.g. "_layouts/MyCompany/mobile", in webconfig add following appSetting key:

<add key="mobile_applicationrootdirectory" value="_layouts/MyCompany/mobile/"/>

After that you can add branding, css, etc. to your own mobile folder. SharePoint is using this by calling SPMobileUtility.GetAppRootDirName() http://msdn.microsoft.com/en-us/library/ee553908(v=office.14).aspx

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 基于Visual C++2010 与office2010开发办公自动化(24)-使用自动化导出Excel文件
    基于Visual C++2010 与office2010开发办公自动化(24)-使用自动化导出Excel文件 VS2010新特性:   Office Word 2010  Office Word 2010 增强了 Navigation Pane 特性,用户可在 Navigation Pane 中快速切换至任何一章节的开头(根据标题样式判断),同时也可在输入框中进行即时搜索,包含关键词的章节标题会高亮显示。例如  Office Word 2010 也增加了在线实时协作功能,用户可以从 Office Word Web App 中启动 Word 2010 进行在线文档的编辑,并可在左下角看到同时编辑的其他用户(包括其他联系方式、IM 等信息,需要 Office Communicator)。而当其他用户修改了某处后,Word 2010 会提醒当前用户进行同步。(注:此功能也存在于部分其他 Office 2010 程序中)  另外,用户可在 Office Word 2010, Office PowerPoint 2010 以及 Office OneNote 2010 等 Office 2010 程序中直接插入其他正在运行的软件的截图。 Office 2010,是微软推出新一代办公软件,开发代号为Office 14,实际是第12个发行版。该软件共有6个版本,分别是初级版、家庭及学生版
  • 基于Visual C++2010与office2010开发办公自动应用(1)在自己的程序里面打开office文档
    基于Visual C++2010与office2010开发办公自动应用(1)在自己的程序里面打开office文档 Office 2010,是微软推出新一代办公软件,开发代号为Office 14,实际是第12个发行版。该软件共有6个版本,分别是初级版、家庭及学生版、家庭及商业版、标准版、专业版和专业高级版,此外还推出Office 2010免费版本,其中仅包括Word和Excel应用。除了完整版以外,微软还将发布针对Office 2007的升级版Office 2010。Office 2010可支持32位和64位vista及Windows7,仅支持32位WindowsXP,不支持64位XP。Office 2010所包括的全部应用有,Microsoft Access 2010,Microsoft Excel 2010;Microsoft InfoPath Designer 2010;Microsoft InfoPath Filler 2010;Microsoft OneNote 2010;Microsoft Outlook 2010;Microsoft PowerPoint 2010;Microsoft Publisher 2010;Microsoft SharePoint Workspace 2010;Microsoft Word 2010;Office Communicator
  • 基于Visual C++2010 与office2010开发办公自动化(25)-如何使用自动化生成Excel图表
    基于Visual C++2010 与office2010开发办公自动化(25)-如何使用自动化生成Excel图表 VS2010新特性:   Office Word 2010  Office Word 2010 增强了 Navigation Pane 特性,用户可在 Navigation Pane 中快速切换至任何一章节的开头(根据标题样式判断),同时也可在输入框中进行即时搜索,包含关键词的章节标题会高亮显示。例如  Office Word 2010 也增加了在线实时协作功能,用户可以从 Office Word Web App 中启动 Word 2010 进行在线文档的编辑,并可在左下角看到同时编辑的其他用户(包括其他联系方式、IM 等信息,需要 Office Communicator)。而当其他用户修改了某处后,Word 2010 会提醒当前用户进行同步。(注:此功能也存在于部分其他 Office 2010 程序中)  另外,用户可在 Office Word 2010, Office PowerPoint 2010 以及 Office OneNote 2010 等 Office 2010 程序中直接插入其他正在运行的软件的截图。 Office 2010,是微软推出新一代办公软件,开发代号为Office 14,实际是第12个发行版。该软件共有6个版本,分别是初级版、家庭及学生版
  • 基于Visual C++2010 与office2010开发办公自动化(26)-如何使用自动化输出Excel查询表
    基于Visual C++2010 与office2010开发办公自动化(26)-如何使用自动化输出Excel查询表 VS2010新特性:   Office Word 2010  Office Word 2010 增强了 Navigation Pane 特性,用户可在 Navigation Pane 中快速切换至任何一章节的开头(根据标题样式判断),同时也可在输入框中进行即时搜索,包含关键词的章节标题会高亮显示。例如  Office Word 2010 也增加了在线实时协作功能,用户可以从 Office Word Web App 中启动 Word 2010 进行在线文档的编辑,并可在左下角看到同时编辑的其他用户(包括其他联系方式、IM 等信息,需要 Office Communicator)。而当其他用户修改了某处后,Word 2010 会提醒当前用户进行同步。(注:此功能也存在于部分其他 Office 2010 程序中)  另外,用户可在 Office Word 2010, Office PowerPoint 2010 以及 Office OneNote 2010 等 Office 2010 程序中直接插入其他正在运行的软件的截图。 Office 2010,是微软推出新一代办公软件,开发代号为Office 14,实际是第12个发行版。该软件共有6个版本,分别是初级版、家庭及学生版
  • 基于Visual C++2010 与office2010开发办公自动化(23)- 使用剪贴板导出Excel文件
    基于Visual C++2010 与office2010开发办公自动化(23)- 使用剪贴板导出Excel文件 VS2010新特性:   Office Word 2010  Office Word 2010 增强了 Navigation Pane 特性,用户可在 Navigation Pane 中快速切换至任何一章节的开头(根据标题样式判断),同时也可在输入框中进行即时搜索,包含关键词的章节标题会高亮显示。例如  Office Word 2010 也增加了在线实时协作功能,用户可以从 Office Word Web App 中启动 Word 2010 进行在线文档的编辑,并可在左下角看到同时编辑的其他用户(包括其他联系方式、IM 等信息,需要 Office Communicator)。而当其他用户修改了某处后,Word 2010 会提醒当前用户进行同步。(注:此功能也存在于部分其他 Office 2010 程序中)  另外,用户可在 Office Word 2010, Office PowerPoint 2010 以及 Office OneNote 2010 等 Office 2010 程序中直接插入其他正在运行的软件的截图。 Office 2010,是微软推出新一代办公软件,开发代号为Office 14,实际是第12个发行版。该软件共有6个版本,分别是初级版、家庭及学生版
  • InfoPath基础应用教程-1 设计一个简单的表单模板
    前言:工作中常遇到客户和同事朋友询问InfoPath的相关问题,博客读者也常有来信,表示与InfoPath相关的教程过少。说实话,我本人其实也没有看过InfoPath的学习资料,全靠自己的理解和经验积累。最近我总结了一些心得,与大家共享,希冀抛砖引玉,共同进步。 InfoPath是Microsoft Office系列产品中的一员,相较于Word、Excel,对于InfoPath很多用户还是比较陌生的。InfoPath是Office家族中专门用于收集数据的表单工具,使用InfoPath可以快速地创建出表单模板,规范数据,达到更快地获取、汇总有效信息的目的。 从InfoPath 2003 开始,InfoPath也已经历经三个版本,目前最新的正式版本是InfoPath 2010。本系列文章中将以InfoPath 2010为例,InfoPath2007在功能上和2010相差不多,概念相通。 InfoPath分为两个模式:设计和填写。在2010中干脆变成了两个客户端:InfoPath Designer和InfoPath Filler。设计模式是给表单设计人员使用的,用来设计表单模板;填写模式是给普通用户用的,基于表单模板进行数据填写。 应用InfoPath客户端的简单场景是,企业的表单设计人员用设计模式设计好表单模板,保存为.xsn文件,并以电子邮件或者其它形式共享给普通用户
  • Office2010新体验-基于Office Visio 2010 图表绘制新体验
    Office2010新体验-基于Office Visio 2010 图表绘制新体验 Office Visio是Microsoft Office 家族中的一个成员,是当今最优秀的办公绘图软件之一,它将强大的功能和简单的操作完美地结合在一起。使用Office Visio 可以绘制业务流程图、组织结构图、项目管理图、营销图表、办公室布局图、网络图、电子线路图、数据库模型图、工艺管道图、因果图和方向图等,因而,Office Visio 被广泛地应用于软件设计、办公自动化、项目管理、广告、企业管理、建筑、电子、机械、通信、科研和日常生活等众多领域。Office Visio 2010 便于 IT 和商务专业人员就复杂信息、系统和流程进行可视化处理、分析和交流。使用具有专业外观的 Office Visio 2010 图表,可以促进对系统和流程的了解,深入了解复杂信息并利用这些知识做出更好的业务决策。 Office Visio 2010 有两个独立版本:Office Visio Professional 2010 和 Office Visio Standard 2010。虽然 Office Visio Standard 2010 与 Office Visio Professional 的基本功能相同,但前者包含的功能和模板是后者的子集。 轻松地使流程、系统和信息可视化 使用 Office
  • Office2010新体验-基于Office Visio 2010 图表绘制新体验
    Office2010新体验-基于Office Visio 2010 图表绘制新体验 Office Visio是Microsoft Office 家族中的一个成员,是当今最优秀的办公绘图软件之一,它将强大的功能和简单的操作完美地结合在一起。使用Office Visio 可以绘制业务流程图、组织结构图、项目管理图、营销图表、办公室布局图、网络图、电子线路图、数据库模型图、工艺管道图、因果图和方向图等,因而,Office Visio 被广泛地应用于软件设计、办公自动化、项目管理、广告、企业管理、建筑、电子、机械、通信、科研和日常生活等众多领域。Office Visio 2010 便于 IT 和商务专业人员就复杂信息、系统和流程进行可视化处理、分析和交流。使用具有专业外观的 Office Visio 2010 图表,可以促进对系统和流程的了解,深入了解复杂信息并利用这些知识做出更好的业务决策。 Office Visio 2010 有两个独立版本:Office Visio Professional 2010 和 Office Visio Standard 2010。虽然 Office Visio Standard 2010 与 Office Visio Professional 的基本功能相同,但前者包含的功能和模板是后者的子集。 轻松地使流程、系统和信息可视化 使用 Office
  • VS2010开发SharePoint Workflow (二)
    在上一篇文章中已经介绍过在Visual Studio 2010开发的工作流中使用Custom Task Edit Page,但实际情况中,一个工作流可能包含多个task,因此我们需要使用多个custom task edit page。此时,将不再需要'Workflow'元素的'TaskListContentTypeId'属性。 项目文件结构如图(本人依旧比较懒,没有改文件的默认名称): 对了,上一篇文章中忘了说明,这些custom task edit page是通过添加'Application Page'生成的。 列表结构很简单,新建一个'Custom List',然后新建五个字段'Director','Manager' -- User类型,'Director Comment','Manager Comment' -- Text类型,'Expense Account' -- Number类型。 Workflow的Elements.xml文件如图: 该流程模拟一个审批流程,如果'Expense Account'的大于1000时,不需要Director进行审批,直接由Manager进行审批;若Director拒绝后,流程直接结束。 工作流的设计视图如下: 具体内容可以参考源代码。 Summary 此例子的需要注意以下几点: 1. 使用'CreateTaskWithContentType
  • How to REpublish Custom Task Forms (InfoPath) to SharePoint 2010 State Machine Workflows
    I am new to SharePoint. Sorry if answer to my question is obvious. I've create Custom Task Form in InfoPath and publish it (File/Publish/Network Location [Form Template Path and filename='MYPROJECT/Forms/ApprovalForm.xsn'; Form template name='ApprovalForm'], in the next window I've cleared Public URL according to the article http://www.codeproject.com/Articles/195348/SharePoint-2010-State-Machine-Workflows-with-Custo). After it I've added module Forms, and added ApprovalForm.xsn from the existing items. My xml files: Elements.xml <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  • Error in authentication when subscribing to a sharepoint webservice using ksoap2-android
    I am writing an Android application that will use the getlist() method of the lists.amx service in sharepoint 2010. I am using ksoap2-android to handle my soap messages. When I try to authenticate I get an xmlpullparser exception expected START_TAG... Why will the following code not authenticate to the sharepoint server? Here is my code: public class SharepointList extends Activity { private static final String SOAP_ACTION = "http://schemas.microsoft.com/sharepoint/soap/GetList"; private static final String METHOD_NAME = "GetList"; private static final String NAMESPACE = "http://schemas
  • VS2010开发SharePoint Workflow (一)
    上周研究了一下利用Visual Studio 2010开发SharePoint工作流,当然,重点是使用自定义的任务编辑页面(Custom Task Edit Page)。在网上找了很多资料,大部分都是用Infopath来做,但我想说的是:不是每台SharePoint服务器都可以使用InfoPath Form Service,但是每台SharePoint服务器都可以使用SharePoint Foundation Workflow. 好了,进入正题,我把自己做的一个例子放上来,希望能给学习SharePoint Workflow的朋友一点帮助。 基本的代码结构如图: 本人比较懒,所以没有改缺省文件的名称。 Workflow的Elements.xml文件如下图: 列表结构也很简单,只需要新建一个'Custom List', 然后新建三个字段:'Approver' -- User类型,'Expense Account' -- Number类型,以及'Comment' -- Text类型。 该流程模拟一个审批流程,如果'Approver'就是流程的发起者,则不会生成Task,否则,就会生成一个Task去进行审批。 新建一个Item并手动启动工作流,由于当前用户和Approver不是同一个人,可以看到有个Task生成了。 点击task进行编辑,就会弹出我们自己定义的taskEdit.aspx页面
  • How to enable a view in SharePoint2010 where there can be more than 8 Lookup columns present?
    I have a SharePoint2010 list which contains around 15 lookup columns. I have created a view in which all 15 are present. When I try to open that view I get the following message: This view cannot be displayed because the number of lookup and workflow status columns it contains exceeds the threshold (8) enforced by the administrator. Is there a way to remove or change this limitation? Thanks.
  • Make Title field enforce unique values in custom list definition (SharePoint 2010)
    I have a custom list definition, and I am trying to rename the custom 'Title' field to 'Name' and to make it enforce unique values. First, I referenced it in the custom content type (Elements.xml): <FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title"/> and then in the list template (Schema.xml): <Field ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" DisplayName="Name" Type="Text" AllowDuplicateValues="FALSE" Required="TRUE"></Field> The field is renamed, but I can add list items with the same title. If I go in the field settings page, the Enforce unique values property
  • Deploying custom dll's in SharePoint 2010
    I'm new to SharePoint and trying to get my head around this. I have a simple Web Part project. I also have a custom Data layer project that uses the Microsoft Enterprise Library for data access. In the Web Part project, I am adding a reference to the Data layer project's assembly. I specified in the Package of the Web Part project that I want my Data layer's assembly to be deployed. I can verify this works by using standard ADO.NET classes and not the custom MS library. If I deploy to the SharePoint server (which I have 100% access to) using the Enterprise Library, I get the error message:
  • SharePoint 2010: RemoveFieldRef and Inherits=“TRUE”
    I have created a custom content type that inherits from the OOTB SharePoint Picture content type. The only customisations I have made is to add a simple URL field, and remove two of the fields on the base type. See below: <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <!-- Parent ContentType: Picture (0x010102) --> <ContentType ID="0x0101020027f16ab27e6e45a6848c25c47aaa7053" Name="Custom Picture" Description="" Group="Custom" Inherits="TRUE" Version="0"> <FieldRefs> <RemoveFieldRef ID="{b66e9b50-a28e-469b-b1a0-af0e45486874}" Name="Keywords" /> <RemoveFieldRef ID="{a5d2f824-bc53
  • 创建部署到选定 Web 应用程序但将程序集复制到 GAC 的解决方案(Creating a solution that deploys to selected WebApplications but copies the assembly to GAC)
    问题 使用 VisualStudio 2010 创建 SharePoint2010 解决方案,我想将我的解决方案部署到选定的 Web 应用程序(不是全部)。 我可以通过将程序集部署目标(项目属性)切换到 WebApplication 来做到这一点。 但是,该程序集将不会部署到 GAC。 是否有允许部署到特定 Web 应用程序,但将程序集部署到 GAC 的设置? 编辑:也许这个问题很难理解,所以这里有一个例子: 在 SharePoint 场中,每个客户都拥有一个 Web 应用程序。 由特定客户订购的自定义功能应该只能在客户的 WebApp 上使用。 该功能不应出现在其他 WebApp 的 SiteCollection 功能或网站功能中。 但功能范围必须是站点或 Web 才能仅在客户门户的部分中激活。 回答1 我不太确定您的最终目标是什么,但您可能需要牢记以下几点: 当你将Assembly Target设置为Web Application时,编译后的程序集(.dl)将部署到Web应用程序的Bin文件夹而不是GAC VS.Net 部署解决方案 (.wsp) 的 Web 应用程序由项目的“站点 URL”属性决定。 除非您正在创建沙盒解决方案,否则您在服务器上部署的功能可用于所有 Web 应用程序,而与您将 WSP 部署到的 Web 应用程序无关。 有时,您可能仍希望将 WSP 部署到特定的
  • How to get Date and current time from the Date/Time column in SharePoint Custom list
    I have column called "Date Submitted" as Date/time in one of the Custom list in sharepoint 2007. it always set to today's date and 12AM time instead of that I want to display today's date with current time hh:mm:ss. I tried creating calculated column TestDate and formula is : =TEXT(([Date Submitted]),"mm dd yyyy h:MM:SS") result is 04 28 2010 0:00:00 I wanted to be 04/28/2010 10:50:34 Is it possible to achive this? Thank you kanta
  • SharePoint 2013在整个页面加载后添加JavaScript(SharePoint 2013 add javascript after whole page load)
    问题 免责声明:我没有使用SharePoint2013的经验。 我遇到了问题-整个页面加载完毕后,我必须包含/触发一些javascript函数。 我试着听DOMDocumentReady和window.load事件,但是sharepoint在这些事件之后呈现页面的其余部分。 我的问题是:在呈现带有ajax的整个页面之后,我应该怎么做才能运行脚本。 我还注意到页面导航基于哈希(#)部分。 显然,我也必须检测到这一刻。 任何帮助甚至链接到文档中的正确页面都将非常有用! 回答1 没错,$(document).ready()之后的页面上发生了很多事情。 2013确实提供了一些选择。 1)按需脚本:(加载js文件,然后执行我的代码。) function stuffThatRequiresSP_JS(){ //your code } SP.SOD.executeFunc("sp.js") 2)延迟直到加载(等待js文件,然后运行) function stuffToRunAfterSP_JS(){ //your code } ExecuteOrDelayUntilScriptLoaded(stuffToRunAfterSP_JS, "sp.js") 3)在其他东西完成后加载 function runAfterEverythingElse(){ // your code }
  • Can't open PDF files in SharePoint 2010 with Internet Explorer
    So we couldn't open .pdf in the browser in our SP2010 site. I set the setting to permissive browser file handling in central admin. I then found out that there's a bug that if a site is created from a custom template the pdf files uploaded to that site will still prompt for either Save or Cancel. I ran a hotfix on the server http://support.microsoft.com/kb/2459108 Consider the following scenario: You set Browser File Handling to Permissive for a web application in the General settings page in SharePoint 2010 Central Administration. You create a document library, and then upload an html