SlideShare une entreprise Scribd logo
1  sur  29
Michael Greene SharePoint Saturday Tampa June 11, 2011 ENHANCING SHAREPOINT 2010FOR THE IPAD
SharePoint Saturday Tampa 6/10/2011 Michael Greene 2 Welcome to SharePoint Saturday Tampa! Introduction Please complete & submit speaker evaluation forms SharePint The Pub, International Mall 6 PM
Agenda SharePoint 2010 Compatibility Mobile Device Connectivity Device Orientation Detection CSS Approach Scripted Approach Branding for Device Orientation Demo Cross-Platform Video HTML5 Video Security Considerations 6/10/2011 3 Michael Greene
sharepoint 2010 compatibility SharePoint 2010 is cross browser compatible Fully Supported:		IE 7 (32 bit), IE 8 (32 bit), IE 9 (32 bit) Supported w/ Limitations:	IE 7 (64 bit), IE 8 (64 bit), IE 9 (64 bit),			Firefox 3.6 (Win & non-Win), Safari 4.04 (non-Win) Is your custom markup cross browser compatible? 6/10/2011 4 Michael Greene
sharepoint 2010 compatibility SharePoint 2010 is cross browser compatible Fully Supported:		IE 7 (32 bit), IE 8 (32 bit), IE 9 (32 bit) Supported w/ Limitations:	IE 7 (64 bit), IE 8 (64 bit), IE 9 (64 bit),			Firefox 3.6 (Win & non-Win), Safari 4.04 (non-Win) Is your custom markup cross browser compatible? 6/10/2011 5 Michael Greene Safari iPad!=   Safari iPhone   !=   Safari iPod
Mobile Device Connectivity 6/10/2011 6 Michael Greene WiFi 3G/4G/Internet Utilizes Internal Wireless May Require VPN* External FBA Kerberos Delegated by TMG
Device orientation detection 6/10/2011 Michael Greene 7 Consumer adoption leading to growth in the business sector New ability to touch and interact with business data Increased user experience Efficiently manage limited screen real estate
CSS Approach Device Orientation Detection 6/10/2011 Michael Greene 8
Css approach 6/10/2011 Michael Greene 9 Utilizes orientation aware Cascading Style Sheets (CSS) Little overhead, no code or script required Detects Portrait vs. Landscape Browser determines ratio of browser width vs. height Use to display, hide, or change size of elements for specific orientations Ideal for integrating orientation detection with site branding
Supported Orientations 6/10/2011 Michael Greene 10 Landscape Portrait
Standard “link” tag with media attribute <link rel="stylesheet" media="all and (orientation:portrait)" href="Portrait.css" /> <link rel="stylesheet" media="all and (orientation:landscape)" href="Landscape.css" /> Cross-Browser Support <!--[if !IE]><!-->   <link rel="stylesheet" media="all and (orientation:portrait)" href="Portrait.css" />   <link rel="stylesheet" media="all and (orientation:landscape)" href="Landscape.css" /> <!--<![endif]--> <!--[if IE]>   <link rel="stylesheet" href="Landscape.css" /> <![endif]--> Attaching style sheets 6/10/2011 Michael Greene 11 Often not needed
Standard “link” tag <link rel="stylesheet" media="all and (orientation:portrait)" href="Portrait.css" /> <link rel="stylesheet" media="all and (orientation:landscape)" href="Landscape.css" /> Browser Support <!--[if !IE]><!-->   <link rel="stylesheet" media="all and (orientation:portrait)" href="Portrait.css" />   <link rel="stylesheet" media="all and (orientation:landscape)" href="Landscape.css" /> <!--<![endif]--> <!--[if IE]>   <link rel="stylesheet" href="Landscape.css" /> <![endif]--> Attaching style sheets 6/10/2011 Michael Greene 12 All style sheets should be attached after Core.css and custom CSS registrations.
Hide Quick Launch when device is in Portrait orientation. Hide any content with the “notPortrait” class; similar to the use of “s4-notdlg”. Examples 6/10/2011 Michael Greene 13 Portrait.css Portrait.css #s4-leftpanel {     display: none; } .s4-ca {     margin-left: 0px; } .notPortrait{ display: none; }
Scripted Approach Device Orientation Detection 6/10/2011 Michael Greene 14
Scripted approach 6/10/2011 Michael Greene 15 Utilizes client-side script (Javascript/jQuery) Scripted specifically for iPad Identifies numerical orientation value Orientation value returned by device hardware/accelerometer Uses: Bind functions to orientation changes Animate element changes Make changes to the Document Object Model (DOM)
Supported Orientations 6/10/2011 Michael Greene 16 90° -90° 0° 180°
<script type="text/javascript" src="jquery-1.4.2.min.js"></script> <script type="text/javascript"> varisiPad = navigator.userAgent.match(/iPad/i) != null;  //Boolean, is device iPad if (isiPad) { // Process only for iPads ProcessOrientation(window.orientation); // Process initial orientation window.onorientationchange = function() { // Process on orientation change ProcessOrientation(window.orientation); }         function ProcessOrientation(currentOrientation) {  if (currentOrientation== 0 || currentOrientation== 180) {                 // Is Portrait 	 } else if (currentOrientation== 90 || currentOrientation== -90) {                 // Is Landscape 	 }         } }  </script> Scripting Orientation Detection 6/10/2011 Michael Greene 17
Hide Quick Launch when device is in Portrait orientation. Hide any content with the “notPortrait” class; similar to the use of “s4-notdlg”. Examples 6/10/2011 Michael Greene 18 jQuery jQuery if (Portrait) {   $(“#s4-leftpanel”).hide();   $(“.s4-ca”).css(“marginLeft”, 0); } if (Landscape) {   $(“#s4-leftpanel”).show();   $(“.s4-ca”).css(“marginLeft”, “150px”); } if (Portrait) {   $(“.notPortrait”).hide(); } if (Landscape) {   $(“.notPortrait”).show(); }
Hide Quick Launch with animation when device is in Portrait orientation. Move contents of one container to another, and back again. ADVANCED Examples 6/10/2011 Michael Greene 19 jQuery jQuery if (Portrait) {   $(“#s4-leftpanel”).animate(     [“left”: “=-150px”], “slow”   );   $(“.s4-ca).animate(     [“marginLeft”: “0px”], “slow”   ); } if (Landscape) {  $(“#s4-leftpanel”).animate(     [“left”: “=+150px”], “slow”   );   $(“.s4-ca).animate(     [“marginLeft”: “150px”], “slow” ); } if (Portrait) {   $(“#C1”).clone().appendTo(“#C2”);  $(“#C1”).html(“”); } if (Landscape) {   $(“#C2”).clone().appendTo(“#C1”);  $(“#C2”).html(“”); }
Hide Quick Launch with animation when device is in Portrait orientation. Move contents of one container to another, and back again. ADVANCED Examples 6/10/2011 Michael Greene 20 jQuery jQuery if (Portrait) {   $(“#s4-leftpanel”).animate(     [“left”: “=-150px”], “slow”   );   $(“.s4-ca).animate(     [“marginLeft”: “0px”], “slow”   ); } if (Landscape) {  $(“#s4-leftpanel”).animate(     [“left”: “=+150px”], “slow”   );   $(“.s4-ca).animate(     [“marginLeft”: “150px”], “slow” ); } if (Portrait) {   $(“#C1”).clone().appendTo(“#C2”);  $(“#C1”).html(“”); } if (Landscape) {   $(“#C2”).clone().appendTo(“#C1”);  $(“#C2”).html(“”); }
Hide Quick Launch with animation when device is in Portrait orientation. Move contents of one container to another, and back again. ADVANCED Examples 6/10/2011 Michael Greene 21 jQuery jQuery if (Portrait) {   $(“#s4-leftpanel”).animate(     [“left”: “=-150px”], “slow”   );   $(“.s4-ca).animate(     [“marginLeft”: “0px”], “slow”   ); } if (Landscape) {  $(“#s4-leftpanel”).animate(     [“left”: “=+150px”], “slow”   );   $(“.s4-ca).animate(     [“marginLeft”: “150px”], “slow” ); } if (Portrait) {   $(“#C1”).clone().appendTo(“#C2”);  $(“#C1”).html(“”); } if (Landscape) {   $(“#C2”).clone().appendTo(“#C1”);  $(“#C2”).html(“”); }
Branding for Device Orientation Demonstration 6/10/2011 Michael Greene 22
HTML5 Cross-Platform Video  6/10/2011 Michael Greene 23
Html5 video 6/10/2011 Michael Greene 24 No third party plugin support in the iPad, only option for embedded video is the use of HTML5. HTML5 standard dictates support for embedded video with <video> tag HTML5 does NOT standardize video format ‡ Safari will render and video format supported by QuickTime; support for H.264/AACMP4 is shipped with QuickTime while other formats require additional client-side plugins. † WebM video format expected for Internet Explorer 9.0+
HTML5 VIDEO TAG 6/10/2011 Michael Greene 25 <video width="640" height="360" controls>  <!-- MP4 must be first for iPad! -->  <source src="__VIDEO__.MP4" type="video/mp4" /> <!-- Safari / iOS video -->  <source src="__VIDEO__.OGV" type="video/ogg" /> <!-- Firefox / Opera / Chrome10 -->  <!-- fallback to Flash: -->  <object width="640" height="360" type="application/x-shockwave-flash“      data="__FLASH__.SWF">    <param name="movie" value="__FLASH__.SWF" />    <param name="flashvars" value="controlbar=over&amp;image=__POSTER__.JPG&amp;      file=__VIDEO__.MP4" />    <!-- fallback image. -->    <imgsrc="__VIDEO__.JPG" width="640" height="360" alt="__TITLE__" title="No video      playback capabilities” />  </object></video>
Security Considerations Cross-Platform Video  6/10/2011 Michael Greene 26
Security considerations 6/10/2011 Michael Greene 27 iPad passes embedded video requests to QuickTime for rendering QuickTime lacks support for any proxy or authentication methods, and iPads cannot join a domain Video files must be anonymously accessible
6/10/2011 Michael Greene 28 Questions?
6/10/2011 Michael Greene 29 Michael greene youtube.mike-greene.com @webdes03 mike-greene.com mike@mike-greene.com michaelg@intellinet.com

Contenu connexe

Similaire à SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJRealize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJLeonardo Balter
 
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET DevelopersAccelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET DevelopersTodd Anglin
 
Fake it 'til you make it
Fake it 'til you make itFake it 'til you make it
Fake it 'til you make itJonathan Snook
 
HTML5 and CSS3 Techniques You Can Use Today
HTML5 and CSS3 Techniques You Can Use TodayHTML5 and CSS3 Techniques You Can Use Today
HTML5 and CSS3 Techniques You Can Use TodayTodd Anglin
 
Design To Deployment
Design To DeploymentDesign To Deployment
Design To Deploymenthicksdesign
 
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Sadaaki HIRAI
 
5 ways to embrace HTML5 today
5 ways to embrace HTML5 today5 ways to embrace HTML5 today
5 ways to embrace HTML5 todayDaniel Ryan
 
HTML5 Introduction
HTML5 IntroductionHTML5 Introduction
HTML5 Introductionbeforeach
 
Silver Light By Nyros Developer
Silver Light By Nyros DeveloperSilver Light By Nyros Developer
Silver Light By Nyros DeveloperNyros Technologies
 
IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009Christopher Judd
 
HTML5+CSS3 (入門編)
HTML5+CSS3 (入門編)HTML5+CSS3 (入門編)
HTML5+CSS3 (入門編)博史 高木
 
Enterprise AIR Development for JavaScript Developers
Enterprise AIR Development for JavaScript DevelopersEnterprise AIR Development for JavaScript Developers
Enterprise AIR Development for JavaScript DevelopersAndreCharland
 
What you need to know bout html5
What you need to know bout html5What you need to know bout html5
What you need to know bout html5Kevin DeRudder
 
Rey Bango - HTML5: polyfills and shims
Rey Bango -  HTML5: polyfills and shimsRey Bango -  HTML5: polyfills and shims
Rey Bango - HTML5: polyfills and shimsStarTech Conference
 
DrupalCon Chicago - Best practices for cross-browser compatibility of Drupal ...
DrupalCon Chicago - Best practices for cross-browser compatibility of Drupal ...DrupalCon Chicago - Best practices for cross-browser compatibility of Drupal ...
DrupalCon Chicago - Best practices for cross-browser compatibility of Drupal ...Ovadiah Myrgorod
 
HTML5 Bootcamp: Essential HTML, CSS, & JavaScript
HTML5 Bootcamp: Essential HTML, CSS, & JavaScriptHTML5 Bootcamp: Essential HTML, CSS, & JavaScript
HTML5 Bootcamp: Essential HTML, CSS, & JavaScriptTodd Anglin
 

Similaire à SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad (20)

Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJRealize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
 
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET DevelopersAccelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
 
Fake it 'til you make it
Fake it 'til you make itFake it 'til you make it
Fake it 'til you make it
 
HTML5 and CSS3 Techniques You Can Use Today
HTML5 and CSS3 Techniques You Can Use TodayHTML5 and CSS3 Techniques You Can Use Today
HTML5 and CSS3 Techniques You Can Use Today
 
Design To Deployment
Design To DeploymentDesign To Deployment
Design To Deployment
 
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
 
5 ways to embrace HTML5 today
5 ways to embrace HTML5 today5 ways to embrace HTML5 today
5 ways to embrace HTML5 today
 
HTML5 Introduction
HTML5 IntroductionHTML5 Introduction
HTML5 Introduction
 
Silver Light By Nyros Developer
Silver Light By Nyros DeveloperSilver Light By Nyros Developer
Silver Light By Nyros Developer
 
Building Web Hack Interfaces
Building Web Hack InterfacesBuilding Web Hack Interfaces
Building Web Hack Interfaces
 
IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009
 
HTML5+CSS3 (入門編)
HTML5+CSS3 (入門編)HTML5+CSS3 (入門編)
HTML5+CSS3 (入門編)
 
Enterprise AIR Development for JavaScript Developers
Enterprise AIR Development for JavaScript DevelopersEnterprise AIR Development for JavaScript Developers
Enterprise AIR Development for JavaScript Developers
 
What you need to know bout html5
What you need to know bout html5What you need to know bout html5
What you need to know bout html5
 
WHAT IS HTML5?(20100510)
WHAT IS HTML5?(20100510)WHAT IS HTML5?(20100510)
WHAT IS HTML5?(20100510)
 
Rey Bango - HTML5: polyfills and shims
Rey Bango -  HTML5: polyfills and shimsRey Bango -  HTML5: polyfills and shims
Rey Bango - HTML5: polyfills and shims
 
DrupalCon Chicago - Best practices for cross-browser compatibility of Drupal ...
DrupalCon Chicago - Best practices for cross-browser compatibility of Drupal ...DrupalCon Chicago - Best practices for cross-browser compatibility of Drupal ...
DrupalCon Chicago - Best practices for cross-browser compatibility of Drupal ...
 
Introduccion a HTML5
Introduccion a HTML5Introduccion a HTML5
Introduccion a HTML5
 
html5
html5html5
html5
 
HTML5 Bootcamp: Essential HTML, CSS, & JavaScript
HTML5 Bootcamp: Essential HTML, CSS, & JavaScriptHTML5 Bootcamp: Essential HTML, CSS, & JavaScript
HTML5 Bootcamp: Essential HTML, CSS, & JavaScript
 

Plus de Michael Greene

Anatomy of an Intranet (Triangle SharePoint User Group) January 2016
Anatomy of an Intranet (Triangle SharePoint User Group) January 2016Anatomy of an Intranet (Triangle SharePoint User Group) January 2016
Anatomy of an Intranet (Triangle SharePoint User Group) January 2016Michael Greene
 
Anatomy of an Intranet (Triangle SharePoint User Group) October 2016
Anatomy of an Intranet (Triangle SharePoint User Group) October 2016Anatomy of an Intranet (Triangle SharePoint User Group) October 2016
Anatomy of an Intranet (Triangle SharePoint User Group) October 2016Michael Greene
 
PowerShell Introduction to Administering SharePoint On-Premises & O365
PowerShell Introduction to Administering SharePoint On-Premises & O365PowerShell Introduction to Administering SharePoint On-Premises & O365
PowerShell Introduction to Administering SharePoint On-Premises & O365Michael Greene
 
Anatomy of an Intranet (SPSATL 2014)
Anatomy of an Intranet (SPSATL 2014)Anatomy of an Intranet (SPSATL 2014)
Anatomy of an Intranet (SPSATL 2014)Michael Greene
 
Enhancing SharePoint 2010 for the iPad (Richmond SPUG 10/31/2012)
Enhancing SharePoint 2010 for the iPad (Richmond SPUG 10/31/2012)Enhancing SharePoint 2010 for the iPad (Richmond SPUG 10/31/2012)
Enhancing SharePoint 2010 for the iPad (Richmond SPUG 10/31/2012)Michael Greene
 
ATLSPUG - SharePoint Branding Best Bets
ATLSPUG - SharePoint Branding Best BetsATLSPUG - SharePoint Branding Best Bets
ATLSPUG - SharePoint Branding Best BetsMichael Greene
 
SharePoint Branding Best Bets (SharePoint Saturday Richmond, 2013)
SharePoint Branding Best Bets (SharePoint Saturday Richmond, 2013)SharePoint Branding Best Bets (SharePoint Saturday Richmond, 2013)
SharePoint Branding Best Bets (SharePoint Saturday Richmond, 2013)Michael Greene
 
Making Life Easier with PowerShell (SPSATL 2012)
Making Life Easier with PowerShell (SPSATL 2012)Making Life Easier with PowerShell (SPSATL 2012)
Making Life Easier with PowerShell (SPSATL 2012)Michael Greene
 
Making Life Easier with PowerShell (SPSVB 2012)
Making Life Easier with PowerShell (SPSVB 2012)Making Life Easier with PowerShell (SPSVB 2012)
Making Life Easier with PowerShell (SPSVB 2012)Michael Greene
 
Making Life Easier with PowerShell - SPSRIC
Making Life Easier with PowerShell - SPSRICMaking Life Easier with PowerShell - SPSRIC
Making Life Easier with PowerShell - SPSRICMichael Greene
 

Plus de Michael Greene (10)

Anatomy of an Intranet (Triangle SharePoint User Group) January 2016
Anatomy of an Intranet (Triangle SharePoint User Group) January 2016Anatomy of an Intranet (Triangle SharePoint User Group) January 2016
Anatomy of an Intranet (Triangle SharePoint User Group) January 2016
 
Anatomy of an Intranet (Triangle SharePoint User Group) October 2016
Anatomy of an Intranet (Triangle SharePoint User Group) October 2016Anatomy of an Intranet (Triangle SharePoint User Group) October 2016
Anatomy of an Intranet (Triangle SharePoint User Group) October 2016
 
PowerShell Introduction to Administering SharePoint On-Premises & O365
PowerShell Introduction to Administering SharePoint On-Premises & O365PowerShell Introduction to Administering SharePoint On-Premises & O365
PowerShell Introduction to Administering SharePoint On-Premises & O365
 
Anatomy of an Intranet (SPSATL 2014)
Anatomy of an Intranet (SPSATL 2014)Anatomy of an Intranet (SPSATL 2014)
Anatomy of an Intranet (SPSATL 2014)
 
Enhancing SharePoint 2010 for the iPad (Richmond SPUG 10/31/2012)
Enhancing SharePoint 2010 for the iPad (Richmond SPUG 10/31/2012)Enhancing SharePoint 2010 for the iPad (Richmond SPUG 10/31/2012)
Enhancing SharePoint 2010 for the iPad (Richmond SPUG 10/31/2012)
 
ATLSPUG - SharePoint Branding Best Bets
ATLSPUG - SharePoint Branding Best BetsATLSPUG - SharePoint Branding Best Bets
ATLSPUG - SharePoint Branding Best Bets
 
SharePoint Branding Best Bets (SharePoint Saturday Richmond, 2013)
SharePoint Branding Best Bets (SharePoint Saturday Richmond, 2013)SharePoint Branding Best Bets (SharePoint Saturday Richmond, 2013)
SharePoint Branding Best Bets (SharePoint Saturday Richmond, 2013)
 
Making Life Easier with PowerShell (SPSATL 2012)
Making Life Easier with PowerShell (SPSATL 2012)Making Life Easier with PowerShell (SPSATL 2012)
Making Life Easier with PowerShell (SPSATL 2012)
 
Making Life Easier with PowerShell (SPSVB 2012)
Making Life Easier with PowerShell (SPSVB 2012)Making Life Easier with PowerShell (SPSVB 2012)
Making Life Easier with PowerShell (SPSVB 2012)
 
Making Life Easier with PowerShell - SPSRIC
Making Life Easier with PowerShell - SPSRICMaking Life Easier with PowerShell - SPSRIC
Making Life Easier with PowerShell - SPSRIC
 

SharePoint Saturday Tampa, Enhancing SharePoint 2010 for the iPad

  • 1. Michael Greene SharePoint Saturday Tampa June 11, 2011 ENHANCING SHAREPOINT 2010FOR THE IPAD
  • 2. SharePoint Saturday Tampa 6/10/2011 Michael Greene 2 Welcome to SharePoint Saturday Tampa! Introduction Please complete & submit speaker evaluation forms SharePint The Pub, International Mall 6 PM
  • 3. Agenda SharePoint 2010 Compatibility Mobile Device Connectivity Device Orientation Detection CSS Approach Scripted Approach Branding for Device Orientation Demo Cross-Platform Video HTML5 Video Security Considerations 6/10/2011 3 Michael Greene
  • 4. sharepoint 2010 compatibility SharePoint 2010 is cross browser compatible Fully Supported: IE 7 (32 bit), IE 8 (32 bit), IE 9 (32 bit) Supported w/ Limitations: IE 7 (64 bit), IE 8 (64 bit), IE 9 (64 bit), Firefox 3.6 (Win & non-Win), Safari 4.04 (non-Win) Is your custom markup cross browser compatible? 6/10/2011 4 Michael Greene
  • 5. sharepoint 2010 compatibility SharePoint 2010 is cross browser compatible Fully Supported: IE 7 (32 bit), IE 8 (32 bit), IE 9 (32 bit) Supported w/ Limitations: IE 7 (64 bit), IE 8 (64 bit), IE 9 (64 bit), Firefox 3.6 (Win & non-Win), Safari 4.04 (non-Win) Is your custom markup cross browser compatible? 6/10/2011 5 Michael Greene Safari iPad!= Safari iPhone != Safari iPod
  • 6. Mobile Device Connectivity 6/10/2011 6 Michael Greene WiFi 3G/4G/Internet Utilizes Internal Wireless May Require VPN* External FBA Kerberos Delegated by TMG
  • 7. Device orientation detection 6/10/2011 Michael Greene 7 Consumer adoption leading to growth in the business sector New ability to touch and interact with business data Increased user experience Efficiently manage limited screen real estate
  • 8. CSS Approach Device Orientation Detection 6/10/2011 Michael Greene 8
  • 9. Css approach 6/10/2011 Michael Greene 9 Utilizes orientation aware Cascading Style Sheets (CSS) Little overhead, no code or script required Detects Portrait vs. Landscape Browser determines ratio of browser width vs. height Use to display, hide, or change size of elements for specific orientations Ideal for integrating orientation detection with site branding
  • 10. Supported Orientations 6/10/2011 Michael Greene 10 Landscape Portrait
  • 11. Standard “link” tag with media attribute <link rel="stylesheet" media="all and (orientation:portrait)" href="Portrait.css" /> <link rel="stylesheet" media="all and (orientation:landscape)" href="Landscape.css" /> Cross-Browser Support <!--[if !IE]><!--> <link rel="stylesheet" media="all and (orientation:portrait)" href="Portrait.css" /> <link rel="stylesheet" media="all and (orientation:landscape)" href="Landscape.css" /> <!--<![endif]--> <!--[if IE]> <link rel="stylesheet" href="Landscape.css" /> <![endif]--> Attaching style sheets 6/10/2011 Michael Greene 11 Often not needed
  • 12. Standard “link” tag <link rel="stylesheet" media="all and (orientation:portrait)" href="Portrait.css" /> <link rel="stylesheet" media="all and (orientation:landscape)" href="Landscape.css" /> Browser Support <!--[if !IE]><!--> <link rel="stylesheet" media="all and (orientation:portrait)" href="Portrait.css" /> <link rel="stylesheet" media="all and (orientation:landscape)" href="Landscape.css" /> <!--<![endif]--> <!--[if IE]> <link rel="stylesheet" href="Landscape.css" /> <![endif]--> Attaching style sheets 6/10/2011 Michael Greene 12 All style sheets should be attached after Core.css and custom CSS registrations.
  • 13. Hide Quick Launch when device is in Portrait orientation. Hide any content with the “notPortrait” class; similar to the use of “s4-notdlg”. Examples 6/10/2011 Michael Greene 13 Portrait.css Portrait.css #s4-leftpanel { display: none; } .s4-ca { margin-left: 0px; } .notPortrait{ display: none; }
  • 14. Scripted Approach Device Orientation Detection 6/10/2011 Michael Greene 14
  • 15. Scripted approach 6/10/2011 Michael Greene 15 Utilizes client-side script (Javascript/jQuery) Scripted specifically for iPad Identifies numerical orientation value Orientation value returned by device hardware/accelerometer Uses: Bind functions to orientation changes Animate element changes Make changes to the Document Object Model (DOM)
  • 16. Supported Orientations 6/10/2011 Michael Greene 16 90° -90° 0° 180°
  • 17. <script type="text/javascript" src="jquery-1.4.2.min.js"></script> <script type="text/javascript"> varisiPad = navigator.userAgent.match(/iPad/i) != null; //Boolean, is device iPad if (isiPad) { // Process only for iPads ProcessOrientation(window.orientation); // Process initial orientation window.onorientationchange = function() { // Process on orientation change ProcessOrientation(window.orientation); } function ProcessOrientation(currentOrientation) { if (currentOrientation== 0 || currentOrientation== 180) { // Is Portrait } else if (currentOrientation== 90 || currentOrientation== -90) { // Is Landscape } } } </script> Scripting Orientation Detection 6/10/2011 Michael Greene 17
  • 18. Hide Quick Launch when device is in Portrait orientation. Hide any content with the “notPortrait” class; similar to the use of “s4-notdlg”. Examples 6/10/2011 Michael Greene 18 jQuery jQuery if (Portrait) { $(“#s4-leftpanel”).hide(); $(“.s4-ca”).css(“marginLeft”, 0); } if (Landscape) { $(“#s4-leftpanel”).show(); $(“.s4-ca”).css(“marginLeft”, “150px”); } if (Portrait) { $(“.notPortrait”).hide(); } if (Landscape) { $(“.notPortrait”).show(); }
  • 19. Hide Quick Launch with animation when device is in Portrait orientation. Move contents of one container to another, and back again. ADVANCED Examples 6/10/2011 Michael Greene 19 jQuery jQuery if (Portrait) { $(“#s4-leftpanel”).animate( [“left”: “=-150px”], “slow” ); $(“.s4-ca).animate( [“marginLeft”: “0px”], “slow” ); } if (Landscape) { $(“#s4-leftpanel”).animate( [“left”: “=+150px”], “slow” ); $(“.s4-ca).animate( [“marginLeft”: “150px”], “slow” ); } if (Portrait) { $(“#C1”).clone().appendTo(“#C2”); $(“#C1”).html(“”); } if (Landscape) { $(“#C2”).clone().appendTo(“#C1”); $(“#C2”).html(“”); }
  • 20. Hide Quick Launch with animation when device is in Portrait orientation. Move contents of one container to another, and back again. ADVANCED Examples 6/10/2011 Michael Greene 20 jQuery jQuery if (Portrait) { $(“#s4-leftpanel”).animate( [“left”: “=-150px”], “slow” ); $(“.s4-ca).animate( [“marginLeft”: “0px”], “slow” ); } if (Landscape) { $(“#s4-leftpanel”).animate( [“left”: “=+150px”], “slow” ); $(“.s4-ca).animate( [“marginLeft”: “150px”], “slow” ); } if (Portrait) { $(“#C1”).clone().appendTo(“#C2”); $(“#C1”).html(“”); } if (Landscape) { $(“#C2”).clone().appendTo(“#C1”); $(“#C2”).html(“”); }
  • 21. Hide Quick Launch with animation when device is in Portrait orientation. Move contents of one container to another, and back again. ADVANCED Examples 6/10/2011 Michael Greene 21 jQuery jQuery if (Portrait) { $(“#s4-leftpanel”).animate( [“left”: “=-150px”], “slow” ); $(“.s4-ca).animate( [“marginLeft”: “0px”], “slow” ); } if (Landscape) { $(“#s4-leftpanel”).animate( [“left”: “=+150px”], “slow” ); $(“.s4-ca).animate( [“marginLeft”: “150px”], “slow” ); } if (Portrait) { $(“#C1”).clone().appendTo(“#C2”); $(“#C1”).html(“”); } if (Landscape) { $(“#C2”).clone().appendTo(“#C1”); $(“#C2”).html(“”); }
  • 22. Branding for Device Orientation Demonstration 6/10/2011 Michael Greene 22
  • 23. HTML5 Cross-Platform Video 6/10/2011 Michael Greene 23
  • 24. Html5 video 6/10/2011 Michael Greene 24 No third party plugin support in the iPad, only option for embedded video is the use of HTML5. HTML5 standard dictates support for embedded video with <video> tag HTML5 does NOT standardize video format ‡ Safari will render and video format supported by QuickTime; support for H.264/AACMP4 is shipped with QuickTime while other formats require additional client-side plugins. † WebM video format expected for Internet Explorer 9.0+
  • 25. HTML5 VIDEO TAG 6/10/2011 Michael Greene 25 <video width="640" height="360" controls> <!-- MP4 must be first for iPad! --> <source src="__VIDEO__.MP4" type="video/mp4" /> <!-- Safari / iOS video --> <source src="__VIDEO__.OGV" type="video/ogg" /> <!-- Firefox / Opera / Chrome10 --> <!-- fallback to Flash: --> <object width="640" height="360" type="application/x-shockwave-flash“ data="__FLASH__.SWF"> <param name="movie" value="__FLASH__.SWF" /> <param name="flashvars" value="controlbar=over&amp;image=__POSTER__.JPG&amp; file=__VIDEO__.MP4" /> <!-- fallback image. --> <imgsrc="__VIDEO__.JPG" width="640" height="360" alt="__TITLE__" title="No video playback capabilities” /> </object></video>
  • 26. Security Considerations Cross-Platform Video 6/10/2011 Michael Greene 26
  • 27. Security considerations 6/10/2011 Michael Greene 27 iPad passes embedded video requests to QuickTime for rendering QuickTime lacks support for any proxy or authentication methods, and iPads cannot join a domain Video files must be anonymously accessible
  • 28. 6/10/2011 Michael Greene 28 Questions?
  • 29. 6/10/2011 Michael Greene 29 Michael greene youtube.mike-greene.com @webdes03 mike-greene.com mike@mike-greene.com michaelg@intellinet.com