zoukankan      html  css  js  c++  java
  • 【开源】开发者新闻聚合APP 2.0.3发布(第二个稳定版本)

    聚合了博客园新闻、infoq新闻、36kr新闻、oschina新闻、51cto新闻、csdn新闻;

    争取做到随时刷随时有开发者的新闻!

    目前还只支持安卓APP

    但用的人多了,我会发布苹果版的APP

    最新版本的下载地址:http://shumanu.com/DeveloperNews.apk

    开源代码的地址(包含采集程序、守护程序、APP客户端和WEB服务端):https://github.com/xland/DeveloperNews

    扫码下载:

     

    来看看系统截图:

     

    这次更新的主要内容有:

    一个屏幕只显示一条新闻;并且字体加大,方便用户在公车上刷新闻,(这样就不会晕车了!亲测!)

    向上滑动家在更多新闻,向下滑动刷新新闻!

    只提供了用系统浏览器打开新闻正文的功能!

    去掉了用不到的权限!

    修改了升级逻辑

     

    升级部分的关键代码:

    (正如你所见,客户端是JS写的,全部代码去GITHUB上看吧)

    function updateAndroid(fPath) {
        var date = new Date().getTime();
        var fileN = "";
        fileN = "_doc/dn_" + date + ".apk";
        var options = {
            method: "GET",
            filename: fileN
        };
        var watiting = plus.nativeUI.showWaiting("开始下载:0%");
        var dtask = plus.downloader.createDownload(fPath, options);
        dtask.addEventListener("statechanged", function(task, status) {
            if (!dtask) {
                return;
            }
            switch (task.state) {
                case 1: // 开始
                    break;
                case 2: // 已连接到服务器
                    break;
                case 3: // 已接收到数据
                    var nowData = Math.floor(task.downloadedSize * 100 / task.totalSize);
                    if (nowData % 10 == 0) {
                        watiting.setTitle("已下载:" + nowData + "%");
                        if (nowData == 100) {
                            plus.nativeUI.toast("正在准备环境,请稍后!");
                            plus.runtime.openFile(dtask.filename);
                            plus.runtime.quit();
                        }
                    }
                    break;
                case 4: // 下载完成
                    break;
            }
        });
        dtask.start();
    }
    
    function checkVersion() {
        mui.get(baseUrl + '/Default.aspx?Action=CheckVersion', {}, function(data) {
            if (data != plus.runtime.version) {
                plus.nativeUI.confirm("有新版本,是否更新?", function(msg) {
                    if (msg.index == 1) {
                        if ('iOS' == plus.os.name) {
                            plus.runtime.openURL(baseUrl + "/update/ios.aspx");
                        } else {
                            updateAndroid(baseUrl+"/DeveloperNews.apk");
                        }
                    }
                }, "友情提醒:", ["取消", "确定"]);
            }
        });
    }

     

    webservice的代码页有更新,如下:

    var pageSize = 8;
    var Index = Request["Index"];
    if (string.IsNullOrWhiteSpace(Index))
    {
        Index = "0";
    }
    var start = Convert.ToInt32(Index);
    var dbFactory = new OrmLiteConnectionFactory(ConfigurationManager.AppSettings["dbConnStr"], MySqlDialect.Provider);
    var db = dbFactory.Open();
    List<allen_news> obj;
    if(start == 0)
    {
        obj = db.Select<allen_news>("select * from allen_news order by news_id desc limit 0,"+(pageSize*2).ToString());
    }
    else
    {
        obj = db.Select<allen_news>("select * from allen_news where news_id < "+start.ToString()+" order by news_id desc limit 0," + pageSize.ToString());
    }
    db.Close();
    db.Dispose();
    if (obj.Count < 1)
    {
        Response.Write("Sorry...我们不打算把不算“新”闻的内容提供给您,您收藏的内容可以在“我的收藏”中找到。");
        Response.End();
        return;
    }
    Response.Write(JsonConvert.SerializeObject(obj));
    Response.End();

     

     

    喜欢的朋友请帮忙点个推荐,或者到github上给我一颗星星,谢谢!

     

     

  • 相关阅读:
    高德引擎构建及持续集成技术演进之路
    Java的传值调用
    Java中真的只有值传递么?
    Centos7启动防火墙时报错Failed to start IPv4 firewall with iptables
    Redis入门(四)-Java操作Redis
    SecureCRT远程连接The remote system refused the connection问题
    [需求设计]从一个小需求感受Redis的独特魅力
    Oracle报错ORA-12516 TNS:listener could not find available handler with matching protocol stack
    编译Netty源码遇到的一些问题-缺少io.netty.util.collection包
    Linux使用alias自定义命令自定义快捷键
  • 原文地址:https://www.cnblogs.com/liulun/p/4953930.html
Copyright © 2011-2022 走看看