[开源] 分享自己写的小程序: 掘金小程序 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
myvin
V2EX    分享创造

[开源] 分享自己写的小程序: 掘金小程序

  •  1
     
  •   myvin 2018-08-21 09:55:51 +08:00/span> 3257 次点击
    这是一个创建于 2665 天前的主题,其中的信息可能已经有所发展或是发生改变。

    掘金小程序

    掘金第三方版--非掘金官方小程序

    利益相关

    声明

    这并不是掘金官方小程序(貌似没有搜到掘金 APP 对应的官方小程序),完全为第三方开发者开发,仅用于学习交流,禁止用于其他用途。若要使用官方正版,可访问掘金 官方网站,或下载掘金官方 APP,或访问掘金官方其他途径。

    该小程序所有 API 均来自掘金官方 web 网站和官方 AndroidAPP(以 web 为主),UI 是~~照抄~~参照的掘金官方 AndroidAPP ( ver 5.4.3 )。部分静态资源(icon、图片等)直接从掘金官方 apk 里拷出来的。

    该小程序代码已开源,点击可查看源码 https://github.com/myvin/juejin,欢迎交流学习~~~。也可以先扫描下方的小程序码直接体验。

    效果图

    对应页面可打开掘金官方 APP 对比

    PC 开发者工具录制,会有些卡顿

    文章数据入口调整了,也保留了动画,请酌情忽略 gif 卡顿

    完成度

    APP 里面的东西实在是不少,包括页面和交互,要完全~~照抄~~实现确实需要一些时间和精力,UI 之类的都是简单测量+肉眼调试实现的,下面列出页面和交互的完成度,这里应该只是列出了绝大部分(还是上面那句话,APP 里面的东西实在是不少),未列出、未实现的后续会根据时间、精力来实现。

    实际完成度请以代码为主(线上小程序也会持续更新)。

    页面完成度

    • [x] 启动页
    • [x] 登录、未登录跳转逻辑和页面数据刷新逻辑等
    • [x] HOME、搜索、沸点、小册 TAB 涉及到的上拉、下拉刷新
    • [x] POST、ENTRY (文章类型不同) 详情页
    • [ ] HOME TAB
      • [x] 首页
        • [x] 热门推荐
        • [x] 下部列表
      • [ ] 标签展示相关
    • [ ] 搜索 TAB
      • [x] 顶部轮播
      • [x] 热门文章
      • [ ] 搜索功能相关
      • [ ] 本周最热
      • [ ] 收藏集
        • [ ] ...
      • [ ] 活动
        • [ ] ...
    • [ ] 沸点 TAB
      • [ ] 推荐
        • [x] 顶部热门沸点
        • [x] 沸点列表
        • [x] 沸点详情
      • [ ] 话题
      • [ ] 动态
      • [ ] 发布沸点
    • [ ] 小册 TAB
      • [x] 小册列表
      • [ ] 小册详情
    • [ ] 我的 TAB
      • [ ] 个人主页
        • [x] 文章数据
        • [ ] 编辑
        • [ ] 关注、被关注列表
        • [x] 动态页
        • [x] 沸点页
        • [x] 原创文章页
        • [x] 收藏集
          • [ ] 收藏集详情页
        • [x] 喜欢的文章
        • [x] 关注的标签
          • [ ] 标签详情页
      • [x] 我喜欢的
      • [x] 收藏集
      • [ ] 已购小册
      • [x] 赞过的沸点
      • [x] 阅读过的文章
      • [x] 标签管理
        • [x] 已关注标签
        • [x] 所有标签
          • [x] 推荐标签
          • [x] 所有标签
      • [ ] 夜间模式
      • [x] 意见反馈(和官方 APP 有差异,这里是个简单的关于页)
      • [ ] 设置
        • [ ] ...
    • [x] 登录页
    • [ ] 注册页
    • [ ] 修改密码页
    • [x] 其他完成部分...
    • [ ] 未完待续部分...

    交互完成度

    评论、留言、关注、添加到收藏集、喜欢、发表沸点等暂时均没有实现,因为 APP 里面的东西实在是不少......

    • [ ] 评论
    • [ ] 留言
    • [ ] 关注
    • [ ] 喜欢
    • [ ] 未完待续部分...

    说明

    • 1、话说掘金的 API 域名(二级)真是多啊,小程序后台域名白名单最多只能配 20 个,现在已经占了 16 个了,感觉要完整~~抄完~~实现掘金 APP 版小程序,配额不够啊。不行的话,就只能搭个 server 代理了;
    • 2、个别接口只有 APP 用到了,请求字段需要按照 web 的略作调整;个别接口也要设置对应的 header
    • 3、文章详情页返回的是整片文章的 html 格式的 content,这里使用的是开源的 wxParse 进行富文本解析;
    • 4、由于小程序的限制,第三方的 url 不能在 webview 中打开,所以文章里面的外链能点开算我输;
    • 5、开发时,个别细节需要稍微注意,比如:沸点 tab 页,如果已经滑到了顶部,onShow 获取新数据,否则,不刷新;未登录时,首页 APP 调用的 API 是 get_recommended_entry,~~就是懒~~为了方便小程序里仍然使用 get_entry_by_timeline;其他的不一一赘述,详情可 查看源码
    • 6、由于~~账号权限等问题~~有些 API 需要天时地利人和,部分 API 返回的数据格式没有拿到,所以对应的页面也没有写,比如:系统消息页面(最近一直没有系统消息)等;
    • 7、部分数据可能未完全覆盖,比如:用户消息这块,目前列举出的 categorycollectioncommentfollowcomment-likepin-likepin-comment,可能还会有其他消息类型,遇到了会一一补上;还有动态页,也是同样的问题;可能还有其他没有完全覆盖的数据;
    • 8、点击某些文章进入详情页会提示 illegal token,亦或文章没有正常显示出来,应该是请求参数需要略作调整,或者文章类型需要判断。类似这样的小问题,后续会调整补充;
    • 9、小程序(非小游戏)在于一个 字,应该是一个应用的浓缩精华版,而不应该是一个内容丰富多彩的 APP100% 的复制版,这样会显得比较臃肿,此处应该有 but,该小程序仅仅是出于学习交流的目的,所以这个问题不在我们的考虑范围内;
    • 10、登录现在只能手机号登录,邮箱登录给忘记了,回头一并加上;
    • 11、我也是有人生梦想的人;

    欢迎交流学习~~

    14 条回复    2018-08-23 09:44:54 +08:00
    newbieRenew
        1
    newbieRenew  
       2018-08-21 10:22:53 +08:00
    支持一下,过这帖子好像被降权了,不出现在“全部”里面。
    chunyu
        2
    chunyu  
       2018-08-21 10:44:00 +08:00
    社区类的小程序 审核需要 ICP 证么?
    myvin
        3
    myvin  
    OP
       2018-08-21 10:45:38 +08:00
    @newbieRenew 为什么会降权啊。。。。
    myvin
        4
    myvin  
    OP
       2018-08-21 10:46:57 +08:00
    @chunyu 这个小程序不是按照社区类来走的,我应该是申请的工具--图片类,至于社区类别个人有没有没有注意,至于是否 ICP 认证不清楚哎。。。。
    newbieRenew
        5
    newbieRenew  
       2018-08-21 10:49:02 +08:00
    @myvin 我也不清楚具体的规则,也没有个明确的公示。
    xi2008wang
        6
    xi2008wang  
       2018-08-21 11:44:21 +08:00
    最近正好需要搞个小程序,赞赞赞
    myvin
        7
    myvin  
    OP
       2018-08-21 12:00:35 +08:00
    @newbieRenew 噢噢,我得好好找找规则了。
    myvin
        8
    myvin  
    OP
       2018-08-21 12:01:39 +08:00
    @xi2008wang 另一个小程序 quietweather 更简单,可以参考下。
    Lyouc
        9
    Lyouc  
       2018-08-21 13:37:05 +08:00   1
    @myvin @chunyu 据我所知,社交,金融理财,医疗明确规定需要 ICP 证。如果其它类别底下,有主推社交相关功能的话,则根据审核人员对于小程序机制的判断,仍然有可能不通过
    achilleo
        10
    achilleo  
       2018-08-21 14:07:56 +08:00
    赞赞赞
    myvin
        11
    myvin  
    OP
       2018-08-21 19:16:14 +08:00
    @Lyouc 那就只能是因为是个半成品,还没有社交的功能?
    myvin
        12
    myvin  
    OP
       2018-08-21 19:16:30 +08:00
    @achilleo 谢谢,互相学习哈~
    Lyouc
        13
    Lyouc  
       2018-08-22 19:54:41 +08:00
    @myvin 看社交是否核心功能,还是辅助性质吧。审核可能过可能不过,也是挺听天由命的
    myvin
        14
    myvin  
    OP
       2018-08-23 09:44:54 +08:00
    @Lyouc 恩,可能是的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2512 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 07:02 PVG 15:02 LAX 23:02 JFK 02:02
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86