|
@@ -251,21 +251,21 @@ import FingerprintJS from '@fingerprintjs/fingerprintjs';
|
|
|
res.json().then(data => {
|
|
|
|
|
|
if (data.code == 1) return
|
|
|
- if (data.data && data.data.downloadUrl) {
|
|
|
- if (data.data.type === '1' || data.data.type === '2') {
|
|
|
- // 读取本地存储的跳转次数
|
|
|
- const jumpContent = window.localStorage.getItem('jump_content') || 0;
|
|
|
+ if (data.data) {
|
|
|
+ // triggerRule 触发规则 1跳转一次 2跳转多次
|
|
|
+ // triggerMode 触发方式 1跳转 2仅提示 3提示并跳转
|
|
|
+ // promptMsg 提示信息
|
|
|
+ let { triggerRule, triggerMode, promptMsg } = data.data
|
|
|
// 获取上次跳转的应用id
|
|
|
const appId = window.localStorage.getItem('app_id');
|
|
|
// 读取上次跳转的类型
|
|
|
const lastType = window.localStorage.getItem('last_type');
|
|
|
|
|
|
- if (data.data.type === '1' && appId == data.data.appId && lastType == data.data.type) {
|
|
|
+ if (triggerRule === 1 && appId == data.data.appId && lastType == triggerRule) {
|
|
|
alert('相同应用ID,已跳转过,跳转取消');
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
- // 倒计时弹窗
|
|
|
+ // 倒计时弹窗
|
|
|
let countdown = 3;
|
|
|
const countdownMask = document.createElement('div');
|
|
|
countdownMask.style.position = 'fixed';
|
|
@@ -289,39 +289,144 @@ import FingerprintJS from '@fingerprintjs/fingerprintjs';
|
|
|
countdownModal.style.flexDirection = 'column';
|
|
|
countdownModal.style.alignItems = 'center';
|
|
|
|
|
|
+ if(triggerMode === 2 || triggerMode === 3 ){
|
|
|
+ const tips = document.createElement('div');
|
|
|
+ tips.innerText = promptMsg;
|
|
|
+ countdownModal.appendChild(tips);
|
|
|
+ }
|
|
|
+
|
|
|
const text = document.createElement('div');
|
|
|
- text.innerText = `即将跳转,${countdown}秒...`;
|
|
|
- countdownModal.appendChild(text);
|
|
|
+
|
|
|
+ if((triggerMode === 1 || triggerMode === 3) && data.data.url !== ''){
|
|
|
+ text.innerText = `即将跳转,${countdown}秒...`;
|
|
|
+ countdownModal.appendChild(text);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
countdownMask.appendChild(countdownModal);
|
|
|
document.body.appendChild(countdownMask);
|
|
|
-
|
|
|
+
|
|
|
+ if(triggerMode === 2 ||(data.data.url == '' && triggerMode === 3)){
|
|
|
+ const close = document.createElement('div');
|
|
|
+ close.innerText = '关闭';
|
|
|
+ close.style.marginTop = '26px';
|
|
|
+ close.style.background = '#007bff';
|
|
|
+ close.style.color = '#fff';
|
|
|
+ close.style.border = 'none';
|
|
|
+ close.style.borderRadius = '10px';
|
|
|
+ close.style.padding = '8px 16px';
|
|
|
+ close.style.cursor = 'pointer';
|
|
|
+ close.style.fontSize='14px'
|
|
|
+
|
|
|
+ // 添加关闭事件处理
|
|
|
+ close.onclick = function() {
|
|
|
+ document.body.removeChild(countdownMask);
|
|
|
+ };
|
|
|
+ countdownModal.appendChild(close);
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
const timer = setInterval(() => {
|
|
|
countdown--;
|
|
|
- text.innerText = `即将跳转,${countdown}秒...`;
|
|
|
+ if((triggerMode === 1 || triggerMode === 3) && data.data.url !== ''){
|
|
|
+ text.innerText = `即将跳转,${countdown}秒...`;
|
|
|
+ }
|
|
|
if (countdown <= 0) {
|
|
|
clearInterval(timer);
|
|
|
document.body.removeChild(countdownMask);
|
|
|
-
|
|
|
- // 跳转逻辑变更
|
|
|
- if(appId == data.data.appId){
|
|
|
- window.localStorage.setItem('last_type', data.data.type);
|
|
|
- window.localStorage.setItem('jump_content', parseInt(jumpContent) + 1);
|
|
|
- window.location.href = data.data.downloadUrl;
|
|
|
- }else{
|
|
|
- window.localStorage.setItem('last_type', data.data.type);
|
|
|
- window.localStorage.setItem('app_id', data.data.appId);
|
|
|
- window.localStorage.setItem('jump_content', 1);
|
|
|
- window.location.href = data.data.downloadUrl;
|
|
|
+ // // 跳转逻辑变更
|
|
|
+ if(data.data.url != ''){
|
|
|
+ if(appId == data.data.appId){
|
|
|
+ window.localStorage.setItem('last_type', triggerRule);
|
|
|
+ window.location.href = data.data.url;
|
|
|
+ }else{
|
|
|
+ window.localStorage.setItem('last_type', data.data.type);
|
|
|
+ window.localStorage.setItem('app_id', data.data.appId);
|
|
|
+ window.location.href = data.data.url;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}, 1000);
|
|
|
- return
|
|
|
- }
|
|
|
+ return
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ // if (data.data.type === '1' || data.data.type === '2') {
|
|
|
+ // // 读取本地存储的跳转次数
|
|
|
+ // const jumpContent = window.localStorage.getItem('jump_content') || 0;
|
|
|
+ // // 获取上次跳转的应用id
|
|
|
+ // const appId = window.localStorage.getItem('app_id');
|
|
|
+ // // 读取上次跳转的类型
|
|
|
+ // const lastType = window.localStorage.getItem('last_type');
|
|
|
+
|
|
|
+ // if (data.data.type === '1' && appId == data.data.appId && lastType == data.data.type) {
|
|
|
+ // alert('相同应用ID,已跳转过,跳转取消');
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+
|
|
|
+ // // 倒计时弹窗
|
|
|
+ // let countdown = 3;
|
|
|
+ // const countdownMask = document.createElement('div');
|
|
|
+ // countdownMask.style.position = 'fixed';
|
|
|
+ // countdownMask.style.top = 0;
|
|
|
+ // countdownMask.style.left = 0;
|
|
|
+ // countdownMask.style.width = '100vw';
|
|
|
+ // countdownMask.style.height = '100vh';
|
|
|
+ // countdownMask.style.background = 'rgba(0,0,0,0.5)';
|
|
|
+ // countdownMask.style.zIndex = 9999;
|
|
|
+ // countdownMask.style.display = 'flex';
|
|
|
+ // countdownMask.style.alignItems = 'center';
|
|
|
+ // countdownMask.style.justifyContent = 'center';
|
|
|
+
|
|
|
+ // const countdownModal = document.createElement('div');
|
|
|
+ // countdownModal.style.background = '#fff';
|
|
|
+ // countdownModal.style.borderRadius = '8px';
|
|
|
+ // countdownModal.style.padding = '32px 48px';
|
|
|
+ // countdownModal.style.fontSize = '20px';
|
|
|
+ // countdownModal.style.boxShadow = '0 2px 16px rgba(0,0,0,0.2)';
|
|
|
+ // countdownModal.style.display = 'flex';
|
|
|
+ // countdownModal.style.flexDirection = 'column';
|
|
|
+ // countdownModal.style.alignItems = 'center';
|
|
|
+
|
|
|
+ // const text = document.createElement('div');
|
|
|
+ // text.innerText = `即将跳转,${countdown}秒...`;
|
|
|
+ // countdownModal.appendChild(text);
|
|
|
+ // countdownMask.appendChild(countdownModal);
|
|
|
+ // document.body.appendChild(countdownMask);
|
|
|
+
|
|
|
+ // const timer = setInterval(() => {
|
|
|
+ // countdown--;
|
|
|
+ // text.innerText = `即将跳转,${countdown}秒...`;
|
|
|
+ // if (countdown <= 0) {
|
|
|
+ // clearInterval(timer);
|
|
|
+ // document.body.removeChild(countdownMask);
|
|
|
+
|
|
|
+ // // 跳转逻辑变更
|
|
|
+ // if(appId == data.data.appId){
|
|
|
+ // window.localStorage.setItem('last_type', data.data.type);
|
|
|
+ // window.localStorage.setItem('jump_content', parseInt(jumpContent) + 1);
|
|
|
+ // window.location.href = data.data.url;
|
|
|
+ // }else{
|
|
|
+ // window.localStorage.setItem('last_type', data.data.type);
|
|
|
+ // window.localStorage.setItem('app_id', data.data.appId);
|
|
|
+ // window.localStorage.setItem('jump_content', 1);
|
|
|
+ // window.location.href = data.data.url;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }, 1000);
|
|
|
+ // return
|
|
|
+ // }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建遮罩
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ return
|
|
|
const mask = document.createElement('div');
|
|
|
mask.style.position = 'fixed';
|
|
|
mask.style.top = 0;
|
|
@@ -368,25 +473,25 @@ import FingerprintJS from '@fingerprintjs/fingerprintjs';
|
|
|
let contentEl;
|
|
|
if (data.data.type === 'video') {
|
|
|
contentEl = document.createElement('video');
|
|
|
- contentEl.src = data.data.downloadUrl;
|
|
|
+ contentEl.src = data.data.url;
|
|
|
contentEl.controls = true;
|
|
|
contentEl.autoplay = true;
|
|
|
contentEl.style.maxWidth = '80vw';
|
|
|
contentEl.style.maxHeight = '70vh';
|
|
|
} else if (data.data.type === 'audio') {
|
|
|
contentEl = document.createElement('audio');
|
|
|
- contentEl.src = data.data.downloadUrl;
|
|
|
+ contentEl.src = data.data.url;
|
|
|
contentEl.controls = true;
|
|
|
contentEl.autoplay = true;
|
|
|
contentEl.style.width = '100%';
|
|
|
} else if (data.data.type === 'image') {
|
|
|
contentEl = document.createElement('img');
|
|
|
- contentEl.src = data.data.downloadUrl;
|
|
|
+ contentEl.src = data.data.url;
|
|
|
contentEl.style.maxWidth = '80vw';
|
|
|
contentEl.style.maxHeight = '70vh';
|
|
|
} else {
|
|
|
contentEl = document.createElement('a');
|
|
|
- contentEl.href = data.data.downloadUrl;
|
|
|
+ contentEl.href = data.data.url;
|
|
|
contentEl.innerText = '下载文件';
|
|
|
contentEl.target = '_blank';
|
|
|
}
|