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

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

作者: Zongzi_599 | 来源:发表于2017-11-29 17:36 被阅读0次

    需求说明

    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,否则直接进入首页。

    相关文章

      网友评论

          本文标题:[技术文档][技术中心][iOS部][114啦]启动页

          本文链接:https://www.haomeiwen.com/subject/unlpbxtx.html