精华 【2014/11/2】CNode.js for Android Ionic[PhoneGap]
发布于 10 年前 作者 saionjisekai 11884 次浏览 最后一次编辑是 8 年前 来自 分享

程序最小化打包在431KB,icon已压,JS、CSS、HTML无压缩,又大了点。

更新日志 2014/11/2 10:25 【版本号:0.1.1】

####【BUG修复】

  • 忘了改了啥了

####【新增功能】 #####【登录】

  • 目前没有实现二维码扫描登录,只提供手动输入(我是QQ发到手机上复制了,输了8位还是几位,看花了,放弃了。。。)。

#####【主页】

  • 新增tab切换;
  • 添加loading(其实也就是<progress>),感觉还算协调,姑且先这样吧。

######【头像】

  • 添加头像显示开关;
  • 头像大小切换,适合高清党,也算不上太高清(128x128);
  • 开关即时生效。

######【主题详情】

  • 支持详情中所有图片(不分存储,只分/src="[a-zA-z]+:\/\/[^\s]*/g)的显示开关,关了之后只剩下…
  • 支持CNode上传(七牛)的图片大小切换,关:最大128x128范围以内等比,开:原图;
  • 和头像开关一样,很适合2G、3G、4G、5G…的小伙伴没事当微博刷,只接收JSON的话,流量相当小。

#####【新建主题】

  • 新建成功后跳转到该主题;
  • 附加小尾巴功能,可以在设置中修改,会补全为\n----------\n开头,方便隔行。

#####【赞】

  • 一颗小红心,暂时不做登录验证

#####【评论】

  • 如题,就是@XXX,再@XXX,再@XXXX…也没做登录验证
  • 事实上…新建主题也没有任何验证,服务器返回啥,我就alert啥,哈哈。

####【icon】

  • 重做了矢量应用图标,新增了xxhdpi。

####以上,貌似都写全了

code地址

https://github.com/saionjisekai/ionic-cnodejs

下载地址

试了一下fir.im,果然很高端啊。 安装包【0.1.1】 插图镇楼,哈哈

50 回复

@zhs077 哈哈是啊,web做的app啊。

喔,:-O 妈妈,我上镜了。

APK图标破了,快补上。

@coolicer - - 右键另存…改后缀…

@saionjisekai 你就不能找个网盘吗。。你这下载方式也太奇葩吧。试试 fir.im

看来用 html 的方式开发手机应用比原生的快很多啊

用户头像缓存的问题,慢慢就会解决的。。现在社区的用户系统是同步 github 的头像,当那个大头像的用户用 github 更新时,就会换成他的 github 头像了。

看来我错了。。大头像用户指的是 @think2011 吧,他的 github 头像本来就是 400K。。。那就这样吧。。

头像问题已解决,我限制大小了

@alsotang 神速啊,晚上回去接着试试看。

不明觉厉~~~~~~

太能折腾了 我得为这个专门在ubuntu上 搞个下载工具。。

@alsotang 于是我躺了一枪。。。怎么头像质量突然成渣了呢。。。然后发现原来多了个 s=40 的参数。。。然后我 Android 客户端只好做一下字符串替换了~

其实这种 URL,因为不同端的需求不一样,其实可以学习 GitHub 的 Hybermedia API 的做法,将这些需要客户端自己加的参数换成方便替换的「模板」:

members_url: "https://api.github.com/orgs/bestng/members{/member}",
public_members_url: "https://api.github.com/orgs/bestng/public_members{/member}",

具体地,为了向后兼容,现在的 avatar_url 就不要动了,增加一个字段。比如:

avatar_url: "//www.gravatar.com/avatar/a5f41e944a8314db521c2a94269c6235?size=48",
avatar_url_presized: "//www.gravatar.com/avatar/a5f41e944a8314db521c2a94269c6235?size={size}",

@xingrz 多谢提醒啊,是有点模糊啊,正打算把url再处理回去啊,哈哈。又得麻烦@alsotang啦。

@p412726700 uGet,你值得拥有。

@xingrz 正在准备搞登录,QRCode你打算怎么搞呢?PhoneGap这块好像都是BarcodeScanner的例子,不知道原生的怎么玩啊?

@saionjisekai Android 上有封装好的 ZXing。。。毕竟都是谷歌自家的东西。。。(虽然谷歌自己封装得也够烂。。。)

其实我那边登录已经搞好了,只是这几天没时间做其它功能,要做大作业 _(:зゝ∠)_

@saionjisekai 你也可以把应用放到http://fir.im 上啊,这样方便大家下载也可以看到你的更新日志,就例如Android的客户端 http://fir.im/cnode

@xingrz @saionjisekai 想请教一下,线上看起来并不模糊啊…怎么线下会模糊?或者你们调一下 url,看看 s = 80 会不会好一点?毕竟很多时候我们并不需要原图大小的头像。对于线上来说,40 已经满足我的需求了,如果你们需要 80 或者 100,那我改成那个数值大家就可以一起用了

@alsotang 像素密度的问题。一般我们在普通显示器上,40px 的头像需要 40px 的大小,没错。

但是,在 Retina 的 Mac、iPhone、iPad 上,因为是 2x 分辨率,自然就需要 80px 的图片才能达到 Retina 的效果。 同理,iPhone 6 Plus 是 3x 分辨率,也就需要 120px 这么大。

安卓的情况更复杂。安卓光是官方建议支持的像素密度就有 mdpi(1x)、hdpi(1.5x)、xhdpi(2x 比如 Galaxy Nexus)、xxhdpi(3x 比如 Nexus 5) 四种。

所以既然大家的需求都不一样,不如直接留个模板让客户端自己替换里面的参数。

@alsotang 哈哈,楼上正解啊。

@xingrz @saionjisekai 其实也不用给参数啊,因为那就是字符串,你们替换一下OK吗?我改成 120 去。

@alsotang 主要是因为,现在的做法是判断到 gravatar.com 就替换 size=48,判断到 avatars.githubusercontent.com 就替换 s=40。这么处理略显干涩。。。现在这种处理方式我是很不喜欢的:

// TODO: 暂时的 workaround, 未做仔细处理
// 将 Gravatar 默认的 48x48 替换成 120x120(按我们的 ImageView 大小是 40dp,xxhdpi 分辨率计算)
if (url.contains("gravatar.com") && url.contains("size=48")) {
    url = url.replace("size=48", "size=120");
}
// 将 GitHub 默认的 40x40 替换成 120x120
if (url.contains("avatars.githubusercontent.com") && url.contains("s=40")) {
    url = url.replace("s=40", "s=120");
}

假如全部统一成 size={size} s={size} 的形式,让客户端自己填写的话,客户端就可以一视同仁直接 replace('{size}', size) 就搞定了。这样,即使以后你增加了除 Gravatar 和 GitHub 外的其他地址,客户端也不需要做任何改变,因为客户端不需要把这两个网站的处理方式硬编码进去。。。

@saionjisekai @callmewhy 诸位怎么看

@alsotang,@xingrz. 其实这一块不用太纠结,我这里是这样处理的。 代码.png 也就是说不管API返回的头像是多大,我都不管,全部进行替换,自定义了高清(128)和非高清(48)的选项。 实现后的效果如下。 关于头像.gif 顺便值得一说的是由于PhoneGap应用的协议是以file://开头的,所以我还要补全“//”开头的url。

@alsotang 哈哈,仔细体会了下“你们替换一下OK吗?”,大概就是正则这个意思吧。。

@saionjisekai 噗。。。这样直接替换 \d+$ 也太粗暴了。。。

@xingrz 没关系啊。 如果后面真的再出个像这样:http://domian.com/avatar?version=xxx&imgsize=xxx&foo=bar 的url,那就再具体问题具体分析好啦。

@xingrz @saionjisekai 如果这里加 size 参数的话,其实我这边实现的代码会难看。我还是希望客户端这边抽象一个关于头像的函数出来处理这个问题。 硬编码是不好看,但这个地方所需要的灵活度很低,是可以接受硬编码的。目前社区的用户系统是基于 github 的。 说到硬编码,在处理用户头像这里,我那两个 if 也是在硬编码啊,因为只有 github 和 gravatar 两个源嘛。

@alsotang 哈哈,不纠结不纠结。纠结是降低生产力的元凶之一。

@saionjisekai 我是想表达,在灵活性要求很低的时候,硬编码反而舒服。

@alsotang 好吧,暂时就这样好了。。。

打开输入法,再关闭的时候,页面卡顿现象好严重。

这个是webapp的通病吗?

@qinyang912 哈哈,没错。刚刚搞发布话题页面的时候,粘了一段超长超长的文本,卡的更猛啊。

可以尝试用crosswalk,应该会流畅很多。

按楼上说的,找到这个。

在现有的Cordova项目中使用Crosswalk https://software.intel.com/zh-cn/articles/crosswalk-cordova 想知道更换后会不会快

没有下拉刷新不幸福

ionic移动应用开发交流 124577170

@coolicer 看起来好像能提升不少性能,打算试一试。

竟然可以新建主题了都

@alsotang 哈哈,火车跑的快,全靠API。。

@coolicer @qinyang912 最近粗略的看了下Crosswalk,原来就是以前Intel以前说的XDK相关的东西。 crosswalk-cordova不知道类库有多大,但是Crosswalk这个东西的lib略微大了点。不包含运行时的apk挺小,但是需要安装15M左右lib。 我一开始搞了套Adobe Air的,跟这个挺像,但10~20M的运行时,实在有点扛不住啊。

mx4飘过,这app跑起来我的魅4都感觉吃力啊!

@yidahis 来。少侠试试我的https://cnodejs.org/topic/5460959c789ab1f8158e1beb

我也用过ionic ,但是我觉得在稍微低端的安卓机上非常卡顿 hybrid app 在ios上很流畅的,不用担心。主要是android上的问题多。

https://cnodejs.org/topic/5460959c789ab1f8158e1beb#5464670f88b869cc33a97919 你可以试试我这个。有空可以一起交流交流

这个app真棒!

phonegap的性能依然不太好啊~

有没有比phonegap更好的做web app的框架啊

回到顶部