app一旦启动就需要显示一个窗口。当你想首先看到的是广告,广告过后是首页。这种要求只能在特殊场景下实现,并非所有场景都能实现这个要求。这个特殊的场景要求,广告必然出现,不能根据后台响应来决定是否有广告,其次显示广告不能依赖的其他条件(如:高德精确定位成功,反地理编码成功)。这种特殊的场景显示广告的过程一般分两类:1.开启引导页面,通常引导页面的数据放在本地,当发现是app首次加载时显示引导页面;2.app启动时只显示一张单一广告图片。通常采用先显示一个包含图片控件的窗口或图层盖在首页上,然后请求广告图片地址成功后设置到图片控件,时间到或关闭广告显示首页。这些都能做到完没有衔接。当然若网络太差,当请求成功或失败后,广告涂层已经超过默认广告时间而消失了,就看不到广告了。
我们遇到一个广告需求,无论怎么做都不可能完没有的显示广告:
1.用户首先获取到当前精确位置(定位返回的前几个位置不准确,通常在室内错几百米很正常,我们是采用高德一次性定位获取的位置和区号),并且高德反地理编码出当前的区号;
2.根据当前的区号向后台请求,后台返回广告图地址和广告时间。当返回的广告图地址为空不显示广告;当返回的广告地址不为空显示广告,并且根据返回的广告显示广告。
由于这个定位和请求需要一秒以上,这段时间app不知道是否显示广告。
下面是不完美的解决方案:
基于app安装通常只有一次,十分不常见,所以允许app首次启动不完美。其次是app的广告不会频繁的显示和隐藏或替换采用本地储存上次的广告。具体解决方法:
1.当app首次启动,当定位完毕,请求回来。若有广告地址和广告时间就显示广告。存在的问题用户首先看到了首页,然后才显示广告。
2.当app非首次启动,判断是否有上次的广告,若有就显示上次的广告。等定位和广告请求回来。若没有广告就结束广告;若有广告并且和原来的广告相同就继续显示广告;若有广告,但是和原来广告不同就切换新广告;若以前不显示广告,广告接口返回广告,就显示广告。所以存在以下三个不完美的问题:
1.广告显示很短,1秒多突然消失(上次显示广告,本次不显示广告)。
2.看到首页后1秒多显示广告(上次不显示广告,本次显示广告)。
3.显示广告过程中广告切换(上次和本次都显示广告,两次广告不同)。
这种使用广告的优点也显然,不用每次都先看到首页1秒后再看到广告。缺点是当广告变化时存在更新不及时。