ios_fullscreen.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. function buildIOSMeta(){
  2. var aMetaTags = [
  3. { name : "viewport",
  4. content : 'width=device-width, height=device-height, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no'},
  5. { name: 'apple-mobile-web-app-capable',
  6. content: 'yes'},
  7. { name: 'apple-mobile-web-app-status-bar-style',
  8. content: 'black'}
  9. ];
  10. for( var i = 0; i < aMetaTags.length; i++ ){
  11. var oNewMeta = document.createElement('meta');
  12. oNewMeta.name = aMetaTags[i].name;
  13. oNewMeta.content = aMetaTags[i].content;
  14. var oOldMeta = window.document.head.querySelector('meta[name="'+oNewMeta.name+'"]');
  15. if (oOldMeta) {
  16. oOldMeta.parentNode.removeChild(oOldMeta);
  17. }
  18. window.document.head.appendChild(oNewMeta);
  19. }
  20. };
  21. function hideIOSFullscreenPanel(){
  22. jQuery(".xxx-ios-fullscreen-message").css("display","none");
  23. jQuery(".xxx-ios-fullscreen-scroll").css("display","none");
  24. jQuery(".xxx-game-iframe-full").removeClass("xxx-game-iframe-iphone-se");
  25. };
  26. function buildIOSFullscreenPanel(){
  27. var html = '';
  28. html += '<div class="xxx-ios-fullscreen-message">';
  29. html += '<div class="xxx-ios-fullscreen-swipe">';
  30. html += '</div>';
  31. html += '</div>';
  32. html += '<div class="xxx-ios-fullscreen-scroll">';
  33. html += '</div>';
  34. jQuery("body").append(html);
  35. };
  36. function showIOSFullscreenPanel(){
  37. jQuery(".xxx-ios-fullscreen-message").css("display","block");
  38. jQuery(".xxx-ios-fullscreen-scroll").css("display","block");
  39. };
  40. function __iosResize(){
  41. window.scrollTo(0, 0);
  42. console.log(window.devicePixelRatio);
  43. console.log(window.innerWidth);
  44. console.log(window.innerHeight);
  45. if( platform.product === "iPhone" ){
  46. switch(window.devicePixelRatio){
  47. case 2:{
  48. switch(window.innerWidth){
  49. case 568:{
  50. //console.log("iPhone 5/5s/5c/se");
  51. if( window.innerHeight === 320 ){
  52. //console.log("fullscreen");
  53. //this.hideIOSFullscreenPanel();
  54. }else{
  55. jQuery(".xxx-game-iframe-full").addClass("xxx-game-iframe-iphone-se");
  56. //console.log("windowed");
  57. // this.showIOSFullscreenPanel();
  58. }
  59. }break;
  60. case 667:{
  61. //console.log("iPhone 6/6s/7/8");
  62. if( window.innerHeight === 375 ){
  63. // console.log("fullscreen");
  64. hideIOSFullscreenPanel();
  65. }else{
  66. //console.log("windowed");
  67. showIOSFullscreenPanel();
  68. }
  69. }break;
  70. case 808:{
  71. //console.log("iPhone Xr");
  72. if( window.innerHeight === 414 ){
  73. hideIOSFullscreenPanel();
  74. }else{
  75. showIOSFullscreenPanel();
  76. }
  77. }break;
  78. default:{
  79. hideIOSFullscreenPanel();
  80. }
  81. }
  82. }break;
  83. case 3:{
  84. switch(window.innerWidth){
  85. case 736:{
  86. //console.log("iPhone 6/6s/7/8 plus");
  87. if( window.innerHeight === 414 ){
  88. // console.log("fullscreen");
  89. hideIOSFullscreenPanel();
  90. }else{
  91. showIOSFullscreenPanel();
  92. }
  93. }break;
  94. // iphone X
  95. case 724:{
  96. // console.log("iPhone X/Xs");
  97. if( window.innerHeight === 375 ){
  98. hideIOSFullscreenPanel();
  99. }else{
  100. showIOSFullscreenPanel();
  101. }
  102. }break;
  103. case 808:{
  104. //console.log("iPhone Xs Max");
  105. if( window.innerHeight === 414 ){
  106. hideIOSFullscreenPanel();
  107. }else{
  108. showIOSFullscreenPanel();
  109. }
  110. }break;
  111. default:{
  112. hideIOSFullscreenPanel();
  113. }
  114. }
  115. }break;
  116. default:{
  117. hideIOSFullscreenPanel();
  118. }
  119. }
  120. }
  121. };
  122. function iosResize(){
  123. __iosResize();
  124. setTimeout(function(){
  125. __iosResize();
  126. },500);
  127. };
  128. function iosInIframe() {
  129. try {
  130. return window.self !== window.top;
  131. } catch (e) {
  132. return true;
  133. }
  134. }
  135. function isIOSLessThen13(){
  136. var oOs = platform.os;
  137. var szFamily = oOs.family.toLowerCase();
  138. var iVersion = parseFloat( oOs.version );
  139. if(szFamily === "ios"){
  140. if(iVersion < 13){
  141. return true;
  142. }
  143. }
  144. return false;
  145. }
  146. $(document).ready(function () {
  147. if(platform &&
  148. platform.product === "iPhone" &&
  149. platform.name.toLowerCase() === "safari" &&
  150. ////AND < ver 13
  151. isIOSLessThen13() &&
  152. !iosInIframe()){
  153. buildIOSFullscreenPanel();
  154. buildIOSMeta();
  155. }
  156. });
  157. jQuery(window).resize(function() {
  158. if(platform &&
  159. platform.product === "iPhone" &&
  160. platform.name.toLowerCase() === "safari" &&
  161. ////AND < ver 13
  162. isIOSLessThen13() &&
  163. !iosInIframe()){
  164. iosResize();
  165. }
  166. });