vue2手机APP项目添加开屏广告或者闪屏广告


Posted in Javascript onNovember 28, 2017

一般项目里,有的会在启动的时候加开屏广告或者闪屏广告。我们是在index.html通过定位来做的。如下:

<style media="screen">
 #entry {
 width: 100%;
 height: 100%;
 z-index: 200;
 position: relative;
 }
 #entryAdv {
 display: none;
 }
 #entryTim {
 position: fixed;
 width: 2.2rem;
 line-height: 0.68rem;
 font-size: 0.32rem;
 z-index: 400;
 text-align: center;
 border-radius: 2rem;
 top: 0.5rem;
 right: 0.5rem;
 border: 1px solid #ccc;
 }
</style>
<body>
<!-- 开屏广告 -->
<section class="adv" id="entryAdv">
 <img id="entry">
 <p id="entryTim"></p>
</section>
<!-- 入口元素 -->
<section id="app"></section>
</body>

然后我们需要单独写一份js文件,跟main.js是同级目录的,具体代码如下:

import api from './fetch/api'
import store from './store/index'
// 修改开屏广告图片尺寸
let advWidth = document.documentElement.clientWidth;
let advHeight = document.documentElement.clientHeight;
let entryEl = document.getElementById('entry');
entryEl.style.widht = advWidth + 'px';
entryEl.style.height = advHeight + 'px';
let queryURL = window.location.href.split('?')[1];
// 判断是否为分享页面
if (queryURL) {
 let queryArr = queryURL.split('&');
 let query = {};
 for (let i = 0; i < queryArr.length; i++) {
 query[queryArr[i].split('=')[0]] = queryArr[i].split('=')[1]
 }
 if (Number(query.showTitle)) {
 // 分享页面中 H5入口(我们项目中做了分享功能,若是从原生APP分享进入H5页面的,也需要加开屏广告)
 api.commonApi('后台接口', '传参数')
  .then(res => {
  let keyArr = [];
  for (let key in res.data) {
   keyArr.push(key);
  }
  if (keyArr.length == 0) {
   return;
  }
  openAdv(res);
  });
 } else {
 // 分享页面中 原生入口
 // 查看query中是否带有token,进行登录判断并将token存入vuex
 if (query.TOKEN != '' && query.TOKEN != 'null') {
  store.dispatch('storeToken', query.TOKEN);
 }
 }
} else {
 // 不是分享页面的入口
 api.commonApi('后台接口', '传参数')
 .then(res => {
  let keyArr = []
  for (let key in res.data) {
  keyArr.push(key);
  }
  if (keyArr.length == 0) {
  return;
  }
  openAdv(res);
 });
}
function openAdv(res) {
 entryAdv.style.display = 'block';
 document.body.style.overflowY = 'hidden';
 // 阻止滑动执行
 document.body.ontouchmove = function(ev) {
 ev.preventDefault();
 };
 let list = res.data.retList;
 if (list && list.length == 0) {
 entryAdv.style.display = 'none';
 document.body.style.overflow = 'auto';
 document.body.ontouchmove = function(ev) {
  ev.stopPropagation();
 };
 }
 let time = (res.data.SPJG || 5000) / 1000;
 // let time = res.data.SPJG;
 let ADV_list = [];
 let BCcontextPathSrc = store.state.common.BCcontextPathSrc;
 switch (res.data.ADV_TYPE) {
 // 开屏直接跳过
 case '1':
 {
  let ImgList = [];
  for (let i = 0; i < list.length; i++) {
  ImgList.push(BCcontextPathSrc + res.data.retList[i].ADV_IMG_URL);
  ADV_list.push(res.data.retList[i].ADV_URL);
  }
  let count_down = time / list.length;
  let ImgNum = 0;
  let timer = setInterval(() => {
  switch (ImgList.length) {
   case 1:
   break;
   case 2:
   {
   if (time % 3 == 0) {
    ImgNum++;
   }
   }
   break;
   case 3:
   {
   if (time % 2 == 0) {
    ImgNum++;
   }
   }
   break;
   case 4:
   {
   if (time % 1 == 0) {
    if (ImgNum > ImgList.length - 2) break;
    ImgNum++;
   }
   }
   break;
   default:
   {
   if (time % 1 == 0) {
    if (ImgNum > ImgList.length - 2) break;
    ImgNum++;
   }
   }
   break;
  }
  if (time <= 0) {
   clearInterval(timer);
   entryAdv.style.display = 'none';
   document.body.style.overflowY = 'auto';
   document.body.ontouchmove = function(ev) {
   ev.stopPropagation();
   };
  }
  entry.src = ImgList[ImgNum];
  entryTim.innerHTML = '跳过 ' + time + 's';
  entry.addEventListener('click', function() {
   window.location.href = ADV_list[ImgNum];
  }, false);
  time--;
  }, 1000);
  entryTim.addEventListener('click', function(ev) {
  ev.preventDefault();
  clearInterval(timer);
  entryAdv.style.display = 'none';
  document.body.style.overflowY = 'auto';
  document.body.ontouchmove = function(ev) {
   ev.stopPropagation();
  };
  }, false);
 }
  break;
 // 闪屏广告
 case '2':
 同上开屏广告,可根据贵公司要求来更改
 }
};
setTimeout(() => {
 require('./main.js');
}, 300)

这样就完成了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS DOM 操作实现代码
Aug 01 Javascript
JS 无限级 Select效果实现代码(json格式)
Aug 30 Javascript
基于jQuery的计算文本框字数的代码
Jun 06 Javascript
js实现TAB切换对应不同颜色的代码
Aug 31 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
Jun 03 Javascript
JS常用字符串方法(推荐)
Jan 15 Javascript
Bootstrap警告框(Alert)插件使用方法
Mar 21 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
Mar 23 jQuery
bootstrap suggest下拉框使用详解
Apr 10 Javascript
Angular2实现组件交互的方法分析
Dec 19 Javascript
详解React native fetch遇到的坑
Aug 30 Javascript
使用element-ui +Vue 解决 table 里包含表单验证的问题
Jul 17 Javascript
浅谈vue中慎用style的scoped属性
Nov 28 #Javascript
元素全屏的设置与监听实例
Nov 28 #Javascript
vue2实现数据请求显示loading图
Nov 28 #Javascript
Vue2仿淘宝实现省市区三级联动
Apr 15 #Javascript
ligerUI---ListBox(列表框可移动的实例)
Nov 28 #Javascript
基于vue2实现上拉加载功能
Nov 28 #Javascript
微信小程序模板和模块化用法实例分析
Nov 28 #Javascript
You might like
php5编程中的异常处理详细方法介绍
2008/07/29 PHP
Uncaught exception com_exception with message Failed to create COM object
2012/01/11 PHP
PHP使用array_fill定义多维数组的方法
2015/03/18 PHP
利用NodeJS的子进程(child_process)调用系统命令的方法分享
2013/06/05 NodeJs
js中精确计算加法和减法示例
2014/03/28 Javascript
js实现类似新浪微博首页内容渐显效果的方法
2015/04/10 Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
2015/10/09 Javascript
zTree插件下拉树使用入门教程
2016/04/11 Javascript
旺旺在线客服代码 旺旺客服代码生成器
2018/01/09 Javascript
如何使用VuePress搭建一个类型element ui文档
2019/02/14 Javascript
nodejs分离html文件里面的js和css的方法
2019/04/09 NodeJs
关于js陀螺仪的理解分析
2019/04/11 Javascript
如何根据业务封装自己的功能组件
2019/04/19 Javascript
vue视图不更新情况详解
2019/05/16 Javascript
Vue2.0实现简单分页及跳转效果
2019/07/29 Javascript
小程序实现横向滑动日历效果
2019/10/21 Javascript
关于vue路由缓存清除在main.js中的设置
2019/11/06 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
2020/08/19 Javascript
[03:12]完美世界DOTA2联赛PWL DAY9集锦
2020/11/10 DOTA
python的常见命令注入威胁
2013/02/18 Python
Python导入txt数据到mysql的方法
2015/04/08 Python
Python中序列的修改、散列与切片详解
2017/08/27 Python
python cx_Oracle的基础使用方法(连接和增删改查)
2017/11/19 Python
python数据封装json格式数据
2018/03/04 Python
django+echart绘制曲线图的方法示例
2018/11/26 Python
python+opencv实现摄像头调用的方法
2019/06/22 Python
python 用户交互输入input的4种用法详解
2019/09/24 Python
使用python模拟高斯分布例子
2019/12/09 Python
Python基本类型的连接组合和互相转换方式(13种)
2019/12/16 Python
用CSS3绘制三角形的简单方法
2015/07/17 HTML / CSS
本科毕业生应聘自荐信范文
2014/06/26 职场文书
就业推荐表自我评价范文
2015/03/02 职场文书
员工旷工检讨书
2015/08/15 职场文书
2016寒假假期总结
2015/10/10 职场文书
演讲开头怎么书写?
2019/08/06 职场文书
导游词创作书写原则以及开场白技巧怎么学?
2019/09/25 职场文书