GithubHelp home page GithubHelp logo

takwolf-deprecated / cnode-material-design Goto Github PK

View Code? Open in Web Editor NEW
1.3K 70.0 347.0 19.01 MB

CNode 社区第三方 Android 客户端,原生 App,Material Design 风格,支持夜间模式。

Home Page: https://cnodejs.org

License: Apache License 2.0

Java 81.46% CSS 12.25% JavaScript 1.33% HTML 4.96%
cnode android material

cnode-material-design's People

Contributors

takwolf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cnode-material-design's Issues

评论会无故增长

image
经常在滚动的时候,原本是好的,滚动多了,然后原本有的评论就会变长了。。。

希望能增加一个分享功能

在客户端看到某个话题想分享给别人,要先点击右上角在浏览器中打开,然后借助浏览器才能分享,有点麻烦,希望能增加在app内部分享的功能

去掉【收藏】有关的功能

之后我们社区不打算提供的收藏功能,麻烦应用检查一下是否有接触到相关的功能,如果有的话,可以全部去掉。

关于侧滑返回

个人觉得在查看详细文章页添加一个侧滑返回功能可以提高用户体验,这样用起来更顺手。
可参考Slidr

兼容模式中,Markdown中图片点击事件绑定相关的实现方法的改进

需求:Markdown渲染完成之后,要对Markdown中的img绑定单击事件,实现点击图片查看大图的功能。

目前的实现为:

视图基于Vue.js,Markdown渲染直接使用模板:参考 https://github.com/TakWolf/CNodeMD-Page-Render-Compat/blob/master/topic_light.html#L43

<div class="markdown-container">
        {{{topic.rendered_content}}}  // rendered_content是已经渲染过的html字符串
</div>

对数据源变动实现监听,在回调中借助jQuery实现事件绑定:参考 https://github.com/TakWolf/CNodeMD-Page-Render-Compat/blob/master/js/topic.js#L77

vmPage.$watch('topic', function () {
    $('.markdown-text img').unbind('click').click(function () {
        var img = $(this);
        if (img.parent('a').length <= 0) {
            window.imageBridge.openImage(img.attr('src'));
        }
    });
});

目前功能可以实现,但是不确定思路是否正确。

存在的问题:

  1. 引入了jQuery,略不爽
  2. vue.js的视图的生成和jQuery之间是否冲突不清楚?用起来貌似没问题
  3. 是否有性能问题?主要担心的是jquery的绑定会不会引起vue的重新渲染造成死循环?貌似不存在这个问题,但是实际使用过程在,webview有极小概率卡死,不清楚愿意是什么
  4. 生成reply对象添加到topic.replies时,这个过程,并没有直接改变topic,所以vuejs的监听器没有触发,这个reply中的图片就没有点击事件

希望能增加检测停止滚动就显示回复按钮

在查看详情的时候,往下翻看回复,右下角的回复按钮会隐藏,而且停止滚动页面也不会出现

所以在看完内容和翻到底部的时候想回复还得往上翻一下,才能出来回复按钮,体验不是很好

个人意见:希望能增加 监听一下页面的滚动事件,当停止滚动后,大约2-3秒,就将回复按钮显示,可以随时回复

Crypto 这个类解密出错

在方法 public byte[] decrypt(@nonnull SecretKey secret, @nonnull IvParameterSpec iv, @nonnull byte[] data)

cipher.init(Cipher.DECRYPT_MODE, secret); 少了一个iv参数 ,
在手机nexus 5s 上面报错切换夜间模式的时候报错。

不知道是不是我的问题=。=

也在列表发现了重复数据

之前在osc的安卓客户端上发现列表有重复的时候,发了个动态,结果被osc客户端相关人员语气很不好说用的是老版本,我把版本号发他了,他不说话了,着实心里不爽,osc的员工素质也就那样!

下面说正题,在cnode社区客户端也发现这问了

screenshot_20160701-080421

user.avatar_url 返回值更新

这个 avatar_url 有更新,之前返回的是 /agent?url=xxxx 的地址,现在服务器准备回到国内,所以不再具备代理能力。之后这里会直接返回 url=xxxx 的真实url

启用客户端渲染Markdown的时候,存在xss风险

问题来源:cnodejs/nodeclub#844

目前线上版本Markdown使用服务端渲染,但是编译时可以配置为使用客户端渲染。客户端渲染的过程中没有过滤xss,这里需要完善。

客户端使用webview作为markdown容器,因为需要支持其他特性,所以开启了javascript以及本地代码交互。较低版本的webview(API < 17)在启用javascript的时候,存在反射漏洞,即通过反射调用未公开的本地方法。所以,理论上,通过在Markdown注入xss,并通过webview反射漏洞获取手机权限,理论上是可行的。

客户端实现GitHub直接登录

问题来源于:https://cnodejs.org/topic/57345764c3e4ef7657ab127b

研究了一下,基本可行,思路如下:

初始化一个WebView,载入CNode登录地址:https://cnodejs.org/auth/github

这句会重定向到:https://github.com/login/oauth/authorize?response_type=code&redirect_uri=http://cnodejs.org/auth/github/callback&client_id=0625d398dd9166a196e9

这是简单模式的Auth2.0,clientId是公开的且没有客户端认证

GitHub登录成功后,携带token回调: https://cnodejs.org/auth/github/callback?code=xxxxxxx

CNode验证成功后,会重定向到首页:https://cnodejs.org/

这时截断这个重定向,取出CNode的session_cookie,用这个session_cookie去抓取设置页面:https://cnodejs.org/setting

解析Dom文档,取出accessToken:

<div class='inner'>
<div><span>字符串:</span>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx</div>
<div>
<span>二维码:</span>
<span id="access-token-qrcode"></span>
</div>

补充:这个只是研究,只为证明Auth登录在客户端可以做,实际不会真正实现到线上环境中。

Auth本身就是为客户端设计的一种授权模式,而web端使用的Auth登录,通常是一种简化版的Auth,移除了签名以及客户端认证,添加了回调来响应通知。(浏览器看成是一种特殊的客户端)

CNode的API没有提供Auth的验证接口,所以抓取页面解析accessToken的做法只是一个hack,不是一个正常的方式!!

正常的方式是,API中提供一个接口,用authToken换 accessToken


补充2:闲着无聊,还是把这个实现了,233

项目地址在:https://github.com/TakWolf/CNode-OAuth-Login-Android

实现节点为:48e4bb3

详情页下的评论列表体验好不舒服

没看源码,猜测是一个评论是一个webview

我现在用的感觉是当一个评论比较长的话,如果往上翻的话会突然页面下来一大截,如果往下翻,碰到下面有一个比较长的评论会突然一下子往上串一大截,不知道大大碰到没

关于推送

刚想去nodeclub去提一下推送的功能结果在issues里翻到了这个cnodejs/nodeclub#667

不知道nodeclub现在支持了没,如果支持了,希望大大能把推送功能完善😄

夜间模式问题

进入设置切换夜间模式后,back到主活动,然后一直back键无法退出程序

compile ('com.afollestad.material-dialogs:core:0.8.5.0@aar') { transitive = true }

使用android studio 1.4编译出现如下错误:

Error:(69, 14) Failed to resolve: com.afollestad.material-dialogs:core:0.8.5.0
Show in File
Show in Project Structure dialog

这个是什么原因?

换成官方推荐的配置:compile('com.github.afollestad.material-dialogs:core:0.8.5.4@aar') { transitive = true }

还是一样的错误,这是什么原因?

在stackoverflow找到类型的问题,根据提示导入证书,也没解决,

http://stackoverflow.com/questions/22887829/peer-not-authenticated-while-importing-gradle-project-in-eclipse

卡在这里来,帮帮忙解答一下, 谢谢!!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.