大神论坛

找回密码
快速注册
查看: 567 | 回复: 0

[源码] [ios]获取wanAndroid的公众号列表数据

digest

主题

帖子

19

积分

初入江湖

UID
17
积分
19
精华
威望
38 点
违规
大神币
68 枚
注册时间
2021-03-06 09:04
发表于 2021-03-06 11:38
本帖最后由 河南程冠希 于 2021-03-06 11:38 编辑



上面是效果图

ios网络请求-> 列表展示数据

背景

网络请求工具:Alamofire

列表展示控件:uitableview

json转模型:AlamofireObjectMapper


获取wanAndroid的api数据

https://wanandroid.com/wxarticle/chapters/json

数据不多,不用分页。


  • 控制器代码
//
// WxListController.swift
// uitable
//
// Created by Alice on 2021/3/5.
//
import AlamofireObjectMapper
import UIKit
import Alamofire

//公众号列表展示页面
class WxListController: UIViewController, UITableViewDelegate, UITableViewDataSource{

//保存微信列表
var wxList = [WxAuthor]()

private lazy var uiTableView : UITableView = {
let tab = UITableView(frame: .zero)

return tab
}()

override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(uiTableView)
uiTableView.snp.makeConstraints { (make) in
//大小和父容器一样大
make.width.equalToSuperview()
//设置上下位置,在安全区内
make.top.equalTo(view.safeAreaLayoutGuide.snp.top)
make.bottom.equalTo(view.safeAreaLayoutGuide.snp.bottom)
}
//设置代{过}{滤}理
uiTableView.delegate = self
uiTableView.dataSource = self
uiTableView.rowHeight = UITableView.automaticDimension
uiTableView.register(CellWxAuthor.self, forCellReuseIdentifier: "cell")
getWxList()
}

func getWxList() {
//获取列表数据
Alamofire.request(ApiConstant.getChaptersUrl()).responseObject { (response: DataResponse<BeanWxList>) in

let wxListBean = response.result.value
//print(wxListBean?.data?.toJSONString() ?? "")
self.wxList = wxListBean?.data ?? [WxAuthor]()
self.uiTableView.reloadData()

}

}
}
//tabview的cell实现
extension WxListController{
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return wxList.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! CellWxAuthor

//设置数据
cell.setValueForCell(data: wxList[indexPath.row])
return cell
}
}

模型代码

//
// BeanWxList.swift
// uitable
// 公众号列表模型
// Created by Alice on 2021/3/5.
//

import Foundation
import ObjectMapper

class BeanWxList: Mappable {

var errorCode : Int = 0
var errorMsg : String = ""
var data : [WxAuthor]?

required init?(map: Map) {

}

func mapping(map: Map) {
errorCode <- map["errorCode"]
errorMsg <- map["errorMsg"]
data <- map["data"]
}
}

class WxAuthor: Mappable {
required init?(map: Map) {

}

func mapping(map: Map) {
courseId <- map["courseId"]
id <- map["id"]
name <- map["name"]
order <- map["order"]
parentChapterId <- map["parentChapterId"]
}

var courseId: Int = 0
var id : Int = 0
var name : String = ""
var order : Int = 0
var parentChapterId : Int = 0
}

cell代码

//
// CellWxAuthor.swift
// uitable
//
// Created by Alice on 2021/3/5.
//
import UIKit
import Foundation
import SnapKit
//微信作者
class CellWxAuthor: UITableViewCell {

private lazy var labName : UILabel = {
let lab = UILabel(frame: .zero)
//显示作者名字
lab.numberOfLines = 1
lab.textColor = ColorUtils.parser("#000811")
return lab
}()

private lazy var labID : UILabel = {
let lab = UILabel(frame: .zero)
//显示作者id
lab.textColor = ColorUtils.parser("#666666")
return lab
}()

required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
//ui编写
addSubview(labName)
addSubview(labID)

//开始约束,名字在上面,id在下面.
labName.snp.makeConstraints { (make) in
make.left.equalToSuperview().offset(12)
make.top.equalToSuperview().offset(12)

}

labID.snp.makeConstraints { (make) in
//左边位置到屏幕左边,margin 12
make.left.equalToSuperview().offset(12)
//顶部在name的下边,margin top 4
make.top.equalTo(labName.snp.bottom).offset(4)
//一定要约束下边.距离-12
//下和右的margin,都是负数
make.bottom.equalTo(-12)
}
}

//设置数据
func setValueForCell(data : WxAuthor) {
labName.text = data.name
labID.text = String(data.id)
}
}


纯代码构建的ui。

当前目标,就是先加载出列表数据。

点击不同的作者,进入该作者的文章列表中。展示文章的标题,封面等数据。

点击文章列表,进入文章详情中。webview展示。

以上就是简单的网络数据获取,和ui展示。

下一篇就是页面的跳转了。

更多逆向破解源码,请访问 大神论坛


下方隐藏内容为项目代码地址:


游客你好,如果您要查看本帖隐藏链接需要登录才能查看, 请先登录

返回顶部