[技术文档][技术中心][iOS部][114啦]启动页

2017-11-29  本文已影响0人  Zongzi_599

需求说明

1.进入启动页后先跟服务端请求广告数据,请求时间为1s,超时则代表无广告。
2.有广告时显示广告,并倒计时3s,若无广告则直接进入首页不倒计时。
3.点击跳过广告按钮直接进入首页。
4.点击广告图片也跳过广告倒计时并打开广告的url。

需求地址

http://192.168.1.75/114la/220/114la_220/#g=1&p=1_0_%E5%90%AF%E5%8A%A8

接口说明

URL:
www.114larc.com/q/api/1.0/android/1.0/getIndexCake

请求方式:GET

返回参数说明:

参数名称 类型 描述
type int 广告
style int 类型
pics Array 图片地址
src string 跳转地址
name string 名称
title string 广告标题

返回格式:

{
    "state": 1,
    "code": 0,
    "message": "",
    "data": {
        "type": 999,
        "style": 5,
        "pics": {
            "src": "http://img.114larc.com/thumb/P/RC/87/PRC87896D1FDDA6E9984BE7E7505054A16D_0?s=769nEgUfDcxscCr7XA8Okw"
        },
        "src": "http://www.baidu.com",
        "name": "百度猫",
        "title": ""
    }
}

核心代码

创建请求,并设置超时时间为1s。
根据返回的json数据判断是否显示广告。

func setUpAdertising() {
        guard let url = URL(string: YYWApiCenter.getAdvertsing()) else {
            //跳过广告
            return
        }
        let requset = URLRequest(url: url, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 1.0)
        
        let urlSession = URLSession(configuration: URLSessionConfiguration.default)
        
        let task = urlSession.dataTask(with: requset) { (data, respone, error) in
            DispatchQueue.main.async {
                if let data = data {
                    let json = JSON.init(data: data)
                    
                    if json["state"].intValue == 1 {
                        let picArr = json["data"]["pics"].arrayValue
                        guard picArr.count >= 3 else { self.skipAction(self.skipBtn); return }
                        var imageurl = ""
                        let indexs = UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.pad ? [2,0,1] : [0,1,2]
                        for index in indexs {
                            if !picArr[index]["src"].stringValue.isEmpty {
                                imageurl = picArr[index]["src"].stringValue
                                break
                            }
                        }
                        
                        guard let url = URL(string: imageurl) else {
                            self.skipAction(self.skipBtn)
                            return
                        }
                        if !json["data"]["src"].stringValue.isEmpty {
                            self.advertsingUrl = json["data"]["src"].stringValue
                            self.advertisingImageView.sd_setImage(with: url)
                            self.setUpTimer()
                            return
                        }
                    }
                }
                self.skipAction(self.skipBtn)
            }
        }
        task.resume()
        
    }

有广告会进入倒计时3s,否则直接进入首页。

上一篇下一篇

猜你喜欢

热点阅读