JM_KA/preview-templates/build-templates_dist/index.js

311 lines
10 KiB
JavaScript
Raw Normal View History

2021-12-28 11:51:27 +00:00
//desktop
var isMobile = navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(android)|(webOS)/i) != null;
var isiPad = navigator.userAgent.match(/iPad/i) != null;
var isiPhone = navigator.userAgent.match(/iPhone|iPod/i) != null;
//baidu
var isBaidu = navigator.userAgent.match('baidu') != null;
//QQ browser
var isQQ = navigator.userAgent.match('MQQBrowser') != null;
//Saferi Browser
var isFirefox = navigator.userAgent.match('FxiOS') != null;
// UC Browser
var isUC = navigator.userAgent.indexOf("UCBrowser") != -1;
// Chrome 1+
var isChrome = navigator.userAgent.match('CriOS') != null;
//xiaomi
var isXiaomi = navigator.userAgent.match('XiaoMi') != null;
var isLine = navigator.userAgent.match('Line') != null;
// Safari 3.0+ "[object HTMLElementConstructor]"
var isSafari = navigator.userAgent.match('Safari') && !isBaidu && !isFirefox && !isQQ && !isChrome && !isUC && !isXiaomi;
var isAndroid = /android/i.test(navigator.userAgent || navigator.vendor || window.opera);
var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
// iPhone X、iPhone XS
var isIPhoneX = /iphone/gi.test(window.navigator.userAgent) && window.devicePixelRatio && window.devicePixelRatio === 3 && window.screen.width === 375 && window.screen.height === 812;
// iPhone XS Max
var isIPhoneXSMax = /iphone/gi.test(window.navigator.userAgent) && window.devicePixelRatio && window.devicePixelRatio === 3 && window.screen.width === 414 && window.screen.height === 896;
// iPhone XR
var isIPhoneXR = /iphone/gi.test(window.navigator.userAgent) && window.devicePixelRatio && window.devicePixelRatio === 2 && window.screen.width === 414 && window.screen.height === 896;
// iPhone SE
var isIPhoneSE = /iphone/gi.test(window.navigator.userAgent) && window.devicePixelRatio && window.devicePixelRatio === 2 && window.screen.width === 320 && window.screen.height === 568;
/**解析網址參數 */
var requests = GetUrlRequest();
/**放置LOGO圖 */
var a = SetLogo();
function preventDefault(e) {
e = e || window.event;
if (e.preventDefault) {
e.preventDefault();
}
e.returnValue = false;
}
function nopreventDefault(e) {
e = e || window.event;
if (e.preventDefault) {
e.preventDefault();
}
e.returnValue = true;
}
function requestFullScreen() {
let el = window.document.body;
let rfs = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullscreen;
if (typeof rfs != "undefined" && rfs) {
rfs.call(el);
}
}
function cancelFullScreen() {
let el = window.document;
let rfs = el.exitFullscreen || el.mozCancelFullScreen || el.webkitExitFullscreen || el.msExitFullscreen;
if (typeof rfs != "undefined" && rfs) {
rfs.call(el);
}
}
function isiPhoneX() {
var t = window.devicePixelRatio || 1,
e = {
width: window.screen.width * t,
height: window.screen.height * t
};
return iOS && 1125 === e.width && 2436 === e.height;
}
function SetLogo() {
var lan = "zh-ch";
if (requests["language"]) {
lan = requests["language"];
}
var splash = document.getElementById("splash");
if (!requests["logo"]) {
splash.className = "default" + " L " + lan + " L pos";
} else {
splash.className = "default_" + requests["logo"] + " L pos";
}
}
function GetUrlRequest() {
var url = window.location.search;
var theRequest = [];
if (url.indexOf("?") != -1) {
var str = url.substr(1);
var strs = str.split("&");
for (var i = 0; i < strs.length; i++) {
theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
}
}
return theRequest;
}
function CheckWebPageBack() {
if ((navigator.userAgent.indexOf('MSIE') >= 0) && (navigator.userAgent.indexOf('Opera') < 0)) { // IE
if (history.length > 0) {
window.history.go(-1);
} else {
window.close();
}
} else {
//非IE瀏覽器
if (navigator.userAgent.indexOf('Firefox') >= 0 ||
navigator.userAgent.indexOf('Opera') >= 0 ||
navigator.userAgent.indexOf('Safari') >= 0 ||
navigator.userAgent.indexOf('Chrome') >= 0 ||
navigator.userAgent.indexOf('WebKit') >= 0) {
if (window.history.length > 2) {
window.history.go(-1);
} else {
window.close();
}
} else {
//未知的瀏覽器
if (history.length > 1) {
window.history.go(-1);
} else {
window.close();
}
}
}
}
/**網頁的RESIZE判斷 */
/*window.onresize = function () {
cc.view.setResizeCallback(this.checkGameCanvasWH());
}*/
/**複寫達到功能縮放到一定程度不再縮放(尚未使用此功能) */
function overrideSetDesignResolutionSize(width, height, resolutionPolicy) {
if (!(width > 0 || height > 0)) {
cc.logID(2200);
return;
}
cc.view.setResolutionPolicy(resolutionPolicy);
var policy = cc.view._resolutionPolicy;
policy && policy.preApply(this);
cc.sys.isMobile && cc.view._adjustViewportMeta();
cc.view._orientationChanging = true;
cc.view._resizing || cc.view._initFrameSize();
if (!policy) {
cc.logID(2201);
return;
}
cc.view._originalDesignResolutionSize.width = cc.view._designResolutionSize.width = width;
cc.view._originalDesignResolutionSize.height = cc.view._designResolutionSize.height = height;
var result = policy.apply(cc.view, cc.view._designResolutionSize);
if (result.scale && 2 === result.scale.length) {
cc.view._scaleX = result.scale[0] <= 1 ? result.scale[0] : 1;
cc.view._scaleY = result.scale[1] <= 1 ? result.scale[1] : 1;
}
if (result.viewport) {
result.viewport.width = result.viewport.width <= width ? result.viewport.width : width;
result.viewport.height = result.viewport.height <= height ? result.viewport.height : height;
var vp = cc.view._viewportRect,
vb = cc.view._visibleRect,
rv = result.viewport;
vp.x = rv.x;
vp.y = rv.y;
vp.width = rv.width;
vp.height = rv.height;
vb.x = 0;
vb.y = 0;
vb.width = rv.width / cc.view._scaleX;
vb.height = rv.height / cc.view._scaleY;
}
policy.postApply(cc.view);
cc.winSize.width = cc.view._visibleRect.width;
cc.winSize.height = cc.view._visibleRect.height;
cc.visibleRect && cc.visibleRect.init(cc.view._visibleRect);
cc.renderer.updateCameraViewport();
this.emit("design-resolution-changed");
}
/**改變CANVAS尺寸後要維持2的倍率.不然容易在縮放網頁時出現圖片接縫(顯示卡繪圖因素) */
function checkGameCanvasWH() {
/*if (document.getElementById("GameCanvas").width > 1422) {
document.getElementById("GameCanvas").width = 1422;
document.getElementById("GameCanvas").style.width = "1422px";
}*/
if (document.getElementById("GameCanvas").width % 2 != 0) {
document.getElementById("GameCanvas").width -= 1;
}
/*if (document.getElementById("GameCanvas").height > 800) {
document.getElementById("GameCanvas").height = 800;
document.getElementById("GameCanvas").style.height = "800px";
}*/
if (document.getElementById("GameCanvas").height % 2 != 0) {
document.getElementById("GameCanvas").height -= 1;
}
}
window.addEventListener('load', function () {
if (!iOS && !isAndroid) {
return;
}
if (isiPhoneX()) {
var r = document.querySelector("meta[name=viewport]");
r.setAttribute("content", "width=device-width,user-scalable=no,initial-scale=1, minimum-scale=1,maximum-scale=1,viewport-fit=cover")
}
//SetSwipe();
if (isAndroid) {
document.body.addEventListener('touchmove', function (e) {
e.preventDefault();
}, {
passive: false
});
requestFullScreen();
} else if (iOS) {
/*if (window.addEventListener) {
window.addEventListener('scroll', onScrollEvent, false);
} else {
window.attachEvent('onscroll', onScrollEvent);
}
onScrollEvent();*/
}
//alert(window.navigator.userAgent)
if (isUC) {
alert("亲爱的玩家您好:\n建议您使用chrome或safari浏览器以获得最佳游戏体验。")
}
}, false);
function SetSwipe() {
var lan = "zh-ch";
if (requests["language"]) {
lan = requests["language"];
}
if (isAndroid) {
var fullScreenClick = document.getElementById("FullScreenClick");
fullScreenClick.className = "default " + lan + " pos";
} else if (iOS) {
var fullScreenSwipe = document.getElementById("FullScreenSwipe");
fullScreenSwipe.className = "default " + lan + " pos";
}
}
function isFullScreen() {
if (isLine) {
return true;
}
if (iOS) {
/*if (isPortraitMode()) {
return window.innerHeight > document.documentElement.clientHeight;
} else {
return window.innerHeight >= document.documentElement.clientHeight;
}*/
} else {
var doc = window.document;
var isFullScreen = !(!doc.fullscreenElement && !doc.mozFullScreenElement && !doc.webkitFullscreenElement && !doc.msFullscreenElement);
return isFullScreen;
}
}
function onScrollEvent() {
if (isFullScreen()) {
displayGame();
} else {
displayFinger();
}
setTimeout(function () {
window.scrollTo(0, 0);
window.scroll(0, 0);
if (document.documentElement.scrollTop) {
document.documentElement.scrollTop = 0;
}
if (document.body.scrollTop) {
document.body.scrollTop = 0;
}
}, 200);
}
function displayFinger() {
document.getElementById("ScreenRotation").style.display = "none";
/*if (isAndroid) {
document.getElementById("FullScreenClick").style.display = "block";
} else if (iOS) {
document.getElementById("FullScreenSwipe").style.display = "block";
}*/
}
function displayGame() {
document.getElementById("ScreenRotation").style.display = "none";
if (isAndroid) {
document.getElementById("FullScreenClick").style.display = "none";
} else if (iOS) {
document.getElementById("FullScreenSwipe").style.display = "none";
}
}