Skip to main content

Consistent SharePoint 2010 branding for Mobile browsers

Through this article I am going demonstrate you how to make consistent UI in sharepoint2010 in different mobile browsers.
My mates every time asking me why we need to involve mobile device with SharePoint. Through this article I am just giving the sample where I am showing why we are slowly moving to mobiles from PC. While giving demo on "SharePoint on mobile" to client I found below things:
  • Client want everything on their hand, means on mobile (Bcoz of busy schedule no time to open laptop/system)
  • Client doesn't want to compromise with UI.
  • Application should as simple and easy to use.
  • Application should be scalable and easy to extend in future.
Out of all four, below three is already provided by SharePoint. SharePoint is lacking somewhat in First point.  But as I said we developer can do anything so here we can do the same "We will bind the SharePoint without breaking SharePoint Rules".
I am using safari browser for the demonstration because through safari browser we can check the application in different browsers. To do this we need to follow below steps :
  1. Open the safari browser.Click on Preference
    sharepointformobilebrowser1.jpg
  2. Click on Advance tab, Check "show Develop menu in menu bar and close
    sharepointformobilebrowser2.jpg
  3. Go to Developer menu bar,
    sharepointformobilebrowser3.jpg
Now open the SharePoint site in safari browser after selecting User agent as Mobile browsers e.g." Mobile Safari 4.1-iPhone". The SharePoint site will look like below
sharepointformobilebrowser4.jpg
The actual site will look like below if you open the same site in IE browser
sharepointformobilebrowser5.jpg
As I said, Client always want the same UI so our next target is to make same UI as it is in normal PC browser.
Follow the below steps to achieve this :
  1. Go to "Run", enter "C:\inetpub\wwwroot\wss\VirtualDirectories",Select your site port number e.g.Port:2255, then my comple path should be like "C:\inetpub\wwwroot\wss\VirtualDirectories\2255\App_Browsers". Open the "Compact. Browser" file in notepad.
  2. The browser.compact file help you in finding browser before loading the sharepoint site in browser. Open the file in notepad and Find "<userAgent match="iPhone" />".
    It will look like below:
    <!-- iPhone Safari Browser -->
        <!-- sample UA "Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A345  Safari/525.20" -->
        <browser id="iPhoneSafari" parentID="AppleSafari">
            <identification>
                <userAgent match="iPhone" />
                <userAgent match="Mobile" />
            </identification>
            <capabilities>
                <capability name="isMobileDevice" value="true" />
                <capability name="canInitiateVoiceCall" value="true" />
                <capability name="optimumPageWeight" value="1500" />
                <capability name="requiresViewportMetaTag" value="true" />
                <capability name="supportsTouchScreen" value="true" />
                <capability name="telephoneNumberDetectionDisabled"  value="true" />
            </capabilities>
        </browser>
  3. Change" <capability name="isMobileDevice"    value="true" />" to " <capability name="isMobileDevice"   value="false" />" 
  4. Save,iisreset and refresh the safari browser. SharePoint site will look like below:
    sharepointformobilebrowser6.jpg
  5. That's all. We are done with our requirement.
Hope you like this article and the beginning where you can show your sharepoint on mobile browser as well.
I suggest you to create a feature where you can add the mobile device ID and based on the id you can do the branding and customization.

Comments

  1. if we want the Non-Mobile View for "all Mobile devices" solution is simple to delete Compact.Browser file then....all secondary devices will have the Non-Mobile View... :)

    Thanks
    Doula

    ReplyDelete

Post a Comment

Popular posts from this blog

Create a Web Part Page with a Web Part in Sharepoint 2010

Source code from codeplex In this blog I am going to explain how to create a web part page along with a web part. After using this feature, we just need to activate the feature; the rest will complete automatically. Steps for creating the functionality: Step 1: Create a project with Farm-Based solution: Step 2: Add a new item as webpart: Step 3: Add feature event receiver class, your solution should look like the following: Step 4: Add your logic to the web part: 01 [ToolboxItemAttribute( false )] 02 public class CustomWebPart : WebPart 03 { 04 protected override void CreateChildControls() 05 { 06 LiteralControl lt = new LiteralControl(); 07 lt.Text = "This webpart automatically added with page" ; 08 this .Controls.Add(lt); 09 } 10 } Step 5: You need to provide logic in the feature Reciever class. Find the attached file to see the source code. Step 6: Build, deploy and activate the feature. Step 7: Go to Page library ( S

SharePoint Branding Solution Pack using VS2010

Introduction Today, in this blog I am trying to provide you the Custom Branding solution Pack. This solution pack will save time and effort while developing the custom sharepoint with publishing sites in sharepoint. It works great. So, we all are good to go and use this re-usable solution pack. Description The source code shows how to prepare a structure for Sharepoint Branding solution. This pack contains : Master Page Gallery structure Page Layout Gallery structure Image Gallery Styles Library gallery Event Receiver

How to create Sandbox solution with full trust Proxy

Download Files: CustomSBFullTrust.zip In this article I am explaining the step by step procedure to create a sandbox solution with full trust proxy. Before starting I am assuming you are aware of the sandbox limitations. Full trust solution is providing sandbox solution to work in a full environment. In short this is the way to achieve farm based solution functionality in a Sandbox. Namespace Required: using Microsoft.SharePoint.UserCode; using Microsoft.SharePoint.Security; using System.Security.Permissions; using Microsoft.SharePoint; using Microsoft.SharePoint.Publishing;