1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xycm-ZhiHuDaily-Swift

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Я программист на JAVA, начал изучать Swift больше месяца назад, раньше не имел опыта работы с iOS. После того как я посмотрел официальную документацию и видео на Douban от старожилов, я решил сделать что-то сам, чтобы попрактиковаться. Честно говоря, разработка под iOS и разработка под JAVA сильно отличаются, самое простое — это то, что использование IDE кажется неудобным... Не говоря уже о разнице в синтаксисе, мышлении и концепции. Это то, чему мне нужно серьёзно учиться.

В процессе разработки я столкнулся со многими проблемами, не думал, что даже кажущаяся простой вещь потребует столько усилий, всё ещё довольно хлопотно, нужно многому научиться. Сейчас я могу только постараться сделать так, чтобы это выглядело похоже, код — сплошная путаница, никакого порядка, многие мысли всё ещё основаны на JAVA. Надеюсь, вы, великие мастера, не будете смеяться надо мной. Когда я получу больше опыта, я вернусь и переработаю это.

Поскольку у меня нет аккаунта разработчика, я запускал приложение только в симуляторе и тестировал его в режиме iOS8 и iPhone 6. Думаю, выбор другого варианта вызовет проблемы. Однако, похоже, Xcode7 поддерживает отладку на реальном устройстве для тех, кто не является разработчиком, это действительно хорошая новость. Позже я попробую сделать совместимым с iPad, думаю, придётся многое изменить.

Скриншот

@новый скриншот слишком большой (25 МБ), пожалуйста, нажмите здесь для просмотра

Добавлено новое: функция 3D-Touch

API 说明

  • Объяснение API. Здесь я хочу поблагодарить @izzyleung, он очень помог, в основном я немного изменил его анализ. Спасибо @izzyleung! @izzyleung! @izzyleung! Важные вещи нужно сказать три раза.
  • Сообщения «Zhihu Daily» выводятся в формате JSON.
  • Число после api в URL-адресе представляет версию API, слишком высокое или слишком низкое значение приведёт к получению сообщения об ошибке.
  • В более старых интерфейсах (получение изображения начального экрана, последние новости, прошлые новости) число 2 заменяется на 1.2 для получения того же эффекта, замена на 1.1 даёт вывод JSON в старом формате API (замена на меньшее число, например, 1.0, или большее число, например, 1.3, приведёт к сообщению об ошибке).
  • Для всех следующих API используется HTTP-метод GET.

Анализ API

--

1. Получение изображения начального экрана

  • URL: http://news-at.zhihu.com/api/4/start-image/{aspec}
  • start-image после него — разрешение изображения, принимается в следующем формате:
    • 320*432
    • 480*728
    • 720*1184
    • 1080*1776
  • Пример ответа:
{
    text: "© Fido Dido",
    img: "http://p2.zhimg.com/10/7b/107bb4894b46d75a892da6fa80ef504a.jpg"
    }
  • Анализ: | Поле | Примечание | | --- | --- | | text | Информация об авторских правах на изображение | | img | URL-адрес изображения |

2. Запрос версии программного обеспечения

  • Android: http://news-at.zhihu.com/api/4/version/android/2.3.0
  • IOS: http://news-at.zhihu.com/api/4/version/ios/{version}
  • Последнее число в URL-адресе обозначает версию установленного приложения «Zhihu Daily».
  • Примеры ответов:
    • Если программное обеспечение является последней версией:
    {
        "status": 0,
        "latest": "2.2.0"
    }
    • Если программное обеспечение имеет более старую версию:
    {
        "status": 1,
        "msg": "【更新内容】(后略)",
        "latest": "2.2.0"
    }
  • Анализ: | Поле | Примечание | | --- | --- | | status | 0 означает, что программное обеспечение является последним, 1 означает, что программное обеспечение необходимо обновить | | latest | Номер версии последнего программного обеспечения (второй сегмент номера версии будет на 1 меньше, чем последний номер версии) | | msg | Появляется только тогда, когда программное обеспечение нуждается в обновлении, сообщение, отображаемое в диалоговом окне обновления программного обеспечения |

3. Последние новости

  • URL:http://news-at.zhihu.com/api/4/news/latest
  • Пример ответа:
{
    date: "20140523",
    stories: [
    {
    title: "中国古代家具发展到今天有两个高峰,一个两宋一个明末(多图)",
    ga_prefix: "052321",
    images: [
    "http://p1.zhimg.com/45/b9/45b9f057fc1957ed2c946814342c0f02.jpg"
     ],
    type: 0,
    id: 3930445
    },
    ...
    ],
    top_stories: [
    {
    title: "商场和很多人家里,竹制家具越来越多(多图)",
    image: "http://p2.zhimg.com/9a/15/9a1570bb9e5fa53ae9fb9269a56ee019.jpg",
    ga_prefix: "052315",
    type: 0,
    id: 3930883
    },
    ...
    ]
    }
  • Анализ | Поле | Примечание | | --- | --- | | date | Дата | | stories | Новости дня | | -> title | Заголовок новости | | -> images | Адрес изображения (официальный API использует массивную форму. На данный момент ситуация с использованием нескольких изображений не возникала, иногда атрибут images отсутствует, обратите внимание при использовании) | | -> ga_prefix | Для использования Google Analytics | | -> type | Неизвестная функция | | -> id | Последний номер в URL и share_url (должен быть идентификатором контента) | | -> multipic | Содержит ли сообщение несколько изображений (появляется только в новостях с несколькими изображениями) | | top_stories | Содержимое, отображаемое при прокрутке ViewPager в верхней части экрана (формат подобен предыдущему) |

4. Получение содержания новостей и загрузка в офлайн-режиме

  • URL:http://news-at.zhihu.com/api/4/news/{id}
  • Пример ответа:
{
    body: "<div class=\"main-wrap content-wrap\">\n<div class=\"headline\">\n\n<div class=\"img-place-holder\"></div>\n\n\n\n</div>\n\n<div class=\"content-inner\">\n\n\n\n\n<div class=\"question\"> ... </div>",
    image_source: "Yestone.com 版权图片库",
    title: "瞎扯 · 如何正确地吐槽",
    image: "http://pic2.zhimg.com/9fe062c07b11959a2dd47068e116a9d5.jpg",
    share_url: "http://daily.zhihu.com/story/4760976",
    js: [],
    recommenders: [
        {
            avatar: "http://pic3.zhimg.com/449b2931521389e4fcbc31a0e2d9d896_m.jpg"
        },
        {
            avatar: "http://pic1.zhimg.com/4e45f545ee8b194476d3131ca7f3a9c8_m.jpg"
        },
        { ```
{
    "items": [
        {
            "index": 1,
            "recommenders": [
                {
                    "bio": "",
                    "zhihu_url_token": "90b373201c03b47548dcac5832da1a95",
                    "id": 1162,
                    "avatar": "http://pic1.zhimg.com/f81b942d0_m.jpg",
                    "name": "Wang Chris"
                },
                {
                    "bio": "Phys2CS",
                    "zhihu_url_token": "d2facf05b7138a6eb4631a161915f7d4",
                    "id": 629,
                    "avatar": "http://pic3.zhimg.com/9dfd356e2f137540439448fa25ef0ea6_m.jpg",
                    "name": "Badger"
                },
                {
                    "bio": "",
                    "zhihu_url_token": "75a591efecfd4c22a6fc778a38a90f8d",
                    "id": 69,
                    "avatar": "http://pic1.zhimg.com/428ce35d11440c08c83f46dbfe435a5c_m.jpg",
                    "name": "One Two"
                },
                {
                    "bio": "重新做人",
                    "zhihu_url_token": "4d2540e03e0e5e225f4817f7ff7fc389",
                    "id": 7895,
                    "avatar": "http://pic3.zhimg.com/816934c948f5e3cc781ecda1ece08c3e_m.jpg",
                    "name": "王RRR"
                },
                {
                    "bio": "金融菜鸟 音乐草根 技能点加歪",
                    "zhihu_url_token": "b929aa5072baae224a74a18b5bd65376",
                    "id": 2576,
                    "avatar": "http://pic4.zhimg.com/1814a1b987a44cc49a448268412dbe23_m.jpg",
                    "name": "酷冰"
                },
                {
                    "bio": "你读书少,不骗你骗谁。",
                    "zhihu_url_token": "1cd7424d0a7990aaff8e2ed24644992a",
                    "id": 369,
                    "avatar": "http://pic3.zhimg.com/bbb689a7a_m.jpg",
                    "name": "卞卡"
                },
                {
                    "bio": "智商捉不了鸡",
                    "zhihu_url_token": "794c4d35096ad3dafb802124cdd83294",
                    "id": 5778,
                    "avatar": "http://pic4.zhimg.com/131bb14f5a12920afc975b3833538027_m.jpg",
                    "name": "二核桃"
                },
                {
                    "bio": "软件工程师",
                    "zhihu_url_token": "93ce68e327ef290f84192014bbc168b2",
                    "id": 6519,
                    "avatar": "http://pic2.zhimg.com/5d55b2e8d_m.jpg",
                    "name": "戴威"
                }
            ],
            "author": {
                "name": "灿妞儿"
            }
        },
        {
            "index": 2,

``` ```
{
    "limit": 1000,
    "subscribed": [],
    "others": [
        {
            "color": 15007,
            "thumbnail": "http://pic3.zhimg.com/0e71e90fd6be47630399d63c58beebfc.jpg",
            "description": "了解自己和别人,了解彼此的欲望和局限。",
            "id": 13,
            "name": "日常心理学"
        }
        ...
    ],
    "stories": [
        {
            "images": [
                "http://pic4.zhimg.com/fabeb6ece13d1b4f3fecd484f475feeb_t.jpg"
            ],
            "type": 2,
            "id": 4759968,
            "title": "你的密码保护问题真的安全吗?"
        },
        {
            "images": [

    ]
}
字段名 备注
limit 返回数目之限制(仅为猜测)
subscribed 已订阅条目
others 其他条目
-> color 颜色,作用未知
-> thumbnail 供显示的图片地址
-> description 主题日报的介绍
-> id 该主题日报的编号
-> name 供显示的主题日报名称
stories 主题日报内容列表
images 图片列表
type 类型
id ID
title 标题
{
"stories": [
    {
        "images": [
            "http://pic2.zhimg.com/969a13db3fad18b1d35ce9d3e2633ef1_t.jpg"
        ],
        "type": 2,
        "id": 4745004,
        "title": "当DNS泄漏让VPN不再安全,我们该怎么办?",
        "description": "把黑客知识科普到你的面前",
        "background": "http://p4.zhimg.com/32/55/32557676e84fcfda4d82d9b8042464e1.jpg",
        "color": 9699556,
        "name": "互联网安全",
        "image": "http://p4.zhimg.com/30/6f/306f3ab291c415f40fe4485b75627230.jpg",
        "editors": [
            {
                "url": "http://www.zhihu.com/people/THANKS",
                "bio": "FreeBuf.com 小编,专注黑客与极客",
                "id": 65,
                "avatar": "http://pic4.zhimg.com/ecd93e213_m.jpg",
                "name": "THANKS"
            },
            {
                "url": "http://www.zhihu.com/people/____",
                "bio": "PKAV & Wooyun",
                "id": 38,
                "avatar": "http://pic1.zhimg.com/815b2ec82_m.jpg",
                "name": "长短短"
            }
        ],
        "image_source": ""
    }
]

}


| 字段名 | 备注 |
|:---|:---|
| stories |该主题日报中的文章列表 |
| -> images | 图像地址(其类型为数组。请留意在代码中处理无该属性与数组长度为 0 的情况) |
| -> type | 类型,作用未知 |
| -> title |消息的标题 |
| -> id |消息的id |
| description | 该主题日报的介绍 |
| background | 该主题日报的背景图片(大图) |
| color | 颜色,作用未知 |
| name | 该主题日报的名称 |
| image | 背景图片的小图版本 |
| editors | 该主题日报的编辑(『用户推荐日报』中此项的指是一个空数组,在 App 中的主编栏显示为『许多人』,点击后访问该主题日报的介绍页面,请留意) |
| -> url | 主编的知乎用户主页 |
| -> bio | 主编的个人简介 |
| -> id | 数据库中的唯一表示符 |
| -> avatar | 主编的头像 |
| -> name | 主编的姓名 |
| image_source | 图像的版权信息 |

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/xycm-ZhiHuDaily-Swift.git
git@api.gitlife.ru:oschina-mirror/xycm-ZhiHuDaily-Swift.git
oschina-mirror
xycm-ZhiHuDaily-Swift
xycm-ZhiHuDaily-Swift
master