ios_fullscreen.js 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  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. document.querySelector(".xxx-ios-fullscreen-message").style.display = "none";
  23. document.querySelector(".xxx-ios-fullscreen-scroll").style.display = "none";
  24. document.querySelector(".xxx-game-iframe-full").classList.remove('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. document.body.insertAdjacentHTML( 'beforeend', html );
  35. };
  36. function showIOSFullscreenPanel(){
  37. document.querySelector(".xxx-ios-fullscreen-message").style.display = "none";
  38. document.querySelector(".xxx-ios-fullscreen-scroll").style.display = "none";
  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. document.querySelector(".xxx-game-iframe-full").classList.add('xxx-game-iframe-iphone-se');
  56. }
  57. }break;
  58. case 667:{
  59. //console.log("iPhone 6/6s/7/8");
  60. if( window.innerHeight === 375 ){
  61. // console.log("fullscreen");
  62. hideIOSFullscreenPanel();
  63. }else{
  64. //console.log("windowed");
  65. showIOSFullscreenPanel();
  66. }
  67. }break;
  68. case 808:{
  69. //console.log("iPhone Xr");
  70. if( window.innerHeight === 414 ){
  71. hideIOSFullscreenPanel();
  72. }else{
  73. showIOSFullscreenPanel();
  74. }
  75. }break;
  76. default:{
  77. hideIOSFullscreenPanel();
  78. }
  79. }
  80. }break;
  81. case 3:{
  82. switch(window.innerWidth){
  83. case 736:{
  84. //console.log("iPhone 6/6s/7/8 plus");
  85. if( window.innerHeight === 414 ){
  86. // console.log("fullscreen");
  87. hideIOSFullscreenPanel();
  88. }else{
  89. showIOSFullscreenPanel();
  90. }
  91. }break;
  92. // iphone X
  93. case 724:{
  94. // console.log("iPhone X/Xs");
  95. if( window.innerHeight === 375 ){
  96. hideIOSFullscreenPanel();
  97. }else{
  98. showIOSFullscreenPanel();
  99. }
  100. }break;
  101. case 808:{
  102. //console.log("iPhone Xs Max");
  103. if( window.innerHeight === 414 ){
  104. hideIOSFullscreenPanel();
  105. }else{
  106. showIOSFullscreenPanel();
  107. }
  108. }break;
  109. default:{
  110. hideIOSFullscreenPanel();
  111. }
  112. }
  113. }break;
  114. default:{
  115. hideIOSFullscreenPanel();
  116. }
  117. }
  118. }
  119. };
  120. function iosResize(){
  121. __iosResize();
  122. setTimeout(function(){
  123. __iosResize();
  124. },500);
  125. };
  126. function iosInIframe() {
  127. try {
  128. return window.self !== window.top;
  129. } catch (e) {
  130. return true;
  131. }
  132. }
  133. function isIOSLessThen13(){
  134. var oOs = platform.os;
  135. var szFamily = oOs.family.toLowerCase();
  136. var iVersion = parseFloat( oOs.version );
  137. if(szFamily === "ios"){
  138. if(iVersion < 13){
  139. return true;
  140. }
  141. }
  142. return false;
  143. }
  144. document.addEventListener("DOMContentLoaded", () =>{
  145. if(platform &&
  146. platform.product === "iPhone" &&
  147. platform.name.toLowerCase() === "safari" &&
  148. ////AND < ver 13
  149. isIOSLessThen13() &&
  150. !iosInIframe()){
  151. buildIOSFullscreenPanel();
  152. buildIOSMeta();
  153. }
  154. });
  155. window.addEventListener('resize', function(event) {
  156. if(platform &&
  157. platform.product === "iPhone" &&
  158. platform.name.toLowerCase() === "safari" &&
  159. ////AND < ver 13
  160. isIOSLessThen13() &&
  161. !iosInIframe()){
  162. iosResize();
  163. }
  164. });