• HarmonyOS之自选股App


    支持在 鸿蒙、安卓、苹果设备上运行。

    1.界面效果展示 

                                    

                                   

                                   

    2.数据存储

    数据存储采用的是官方的  @ohos.data.relationalStore.relationalStore

    stock_code表用来存储A股市场5000多家公司的股票代码和名称等信息

    1. const TAB_STOCK_CODE = "stock_code"
    2. const CREATE_TABLE_CODE = "CREATE TABLE IF NOT EXISTS "+TAB_STOCK_CODE+" ("
    3. + "id INTEGER PRIMARY KEY AUTOINCREMENT, "
    4. + "code TEXT , "
    5. + "name TEXT , "
    6. + "market TEXT,"
    7. + "pinyin TEXT ) "

    stock_group 表存储 分组信息

    1. const TAB_STOCK_GROUP = "stock_group"
    2. const CREATE_TABLE_GROUP = "CREATE TABLE IF NOT EXISTS "+TAB_STOCK_GROUP+" ("
    3. + "id INTEGER PRIMARY KEY AUTOINCREMENT, "
    4. + "name TEXT , "
    5. + "seq TEXT ) "

    stock_group_code 表存储分组添加的的自选股信息

    1. const CREATE_TABLE_GROUP_CODE = "CREATE TABLE IF NOT EXISTS "+TAB_STOCK_GROUP_CODE+" ("
    2. + "id INTEGER PRIMARY KEY AUTOINCREMENT, "
    3. + "group_id INTEGER , "
    4. + "code TEXT , "
    5. + "market TEXT ,"
    6. + "remark TEXT ,"
    7. + "seq TEXT ) "

     3.实时股价接口

    获取实时股价的免费接口为 

    https://qt.gtimg.cn/q=sh600519 ,末尾6位为公司股票代码,sh为上市公司所在市场。可以同时请求多个,中间用逗号分隔,比如 https://qt.gtimg.cn/q=sh600519,sz000858

    同时请求贵州茅台和五粮液的实时价格。

    浏览器发起请求返回的数据如下:

    v_sh600519="1~贵州茅台~600519~1541.50~1555.00~1532.29~48318~23653~24665~1541.50~10~1541.37~1~1541.33~4~1541.20~8~1541.13~1~1541.98~2~1541.99~3~1542.00~10~1542.01~1~1542.05~6~~20240617160005~-13.50~-0.87~1548.77~1511.01~1541.50/48318/7400883243~48318~740088~0.38~24.82~~1548.77~1511.01~2.43~19364.29~19364.29~8.08~1710.50~1399.50~1.04~2~1531.70~20.12~25.91~~~0.74~740088.3243~0.0000~0~ ~GP-A~-10.69~-4.80~2.92~32.54~28.33~1915.89~1511.01~-6.49~-10.12~-10.25~1256197800~1256197800~4.35~-14.40~1256197800~~~-12.05~-0.04~~CNY~0~___D__F__N~1541.00~30"; 

     在 HarmonyOS平台上,由于中文会乱码,数据用~分隔会有问题,因此需要将返回结果通过 字符串的  reverse 方法进行反转,这样乱码的中文就到了字符串的末尾位置

    ;"03~00.1451~N__F__D___~0~YNC~~40.0-~50.21-~~~0087916521~04.41-~53.4~0087916521~0087916521~52.01-~21.01-~94.6-~10.1151~98.5191~33.82~45.23~29.2~08.4-~96.01-~A-PG~ ~0~0000.0~3423.880047~47.0~~~19.52~21.02~07.1351~2~40.1~05.9931~05.0171~80.8~92.46391~92.46391~34.2~10.1151~77.8451~~28.42~83.0~880047~81384~3423880047/81384/05.1451~10.1151~77.8451~78.0-~05.31-~50006171604202~~6~50.2451~1~10.2451~01~00.2451~3~99.1451~2~89.1451~1~31.1451~8~02.1451~4~33.1451~1~73.1451~01~05.1451~56642~35632~81384~92.2351~00.5551~05.1451~915006~台茅州贵~1"=915006hs_v

    反转之后,用~切割

    1. const ele: Array<string> = item.split('~').reverse()
    2. let chg:number = parseFloat(ele[83]) - parseFloat(ele[82])
    3. let _chg:string = chg.toFixed(2)
    4. let percent = chg/parseFloat(ele[82])*100;

    反转后下标 83的位置为实时股价,82的位置为昨天的收盘价,相减计算出实时的涨跌百分比。 

    4. 换肤 

    使用 @Provide注解以及  @Consume注解 声明了变量 isDark来实现换肤的功能,实现整个App的主题颜色在黑暗色和明亮色之间切换。
    

    5.注意事项

    数据请求采用 第三方 axios 轻松搞定。

    注意 axios 和 relationalStore 不支持在 PreViewer里面运行,.因此只能将工程编译为Android项目后,在AndroidStudio里面打包完成之后,安装在Android手机上来 看真实的效果。

    6.使用说明

    App安装成功之后,初次打开会将 5000多家上市公司的数据插入 stock_code表。

    然后需要在分组模块 新建分组,保存后在自选模快就能看到刚刚新建的分组,点击对应分组下面的【添加】按钮就能添加自选股了。

    7.代码

    代码已上传到Gitee,地址 https://gitee.com/xukongjing/ark_ui_stock.git

    代码克隆到本地以后,在项目的 .arkui-x/android/app/release目录下,放置着我打包好的android安装包,可以优先体验。 

  • 相关阅读:
    ORACLE 12C切换至可插入式数据库命令
    信息学奥赛一本通:2050:【例5.20】字串包含
    拍立淘助力电商新趋势:以图搜图购物成主流
    信息系统架构的设计理论与实践
    数据包络分析——SBM模型
    牛客小白月赛81
    SAP/PP-40策略下SO不消耗PIR问题
    如何在树莓派上安装cpolar内网穿透
    Tomcat服务(部署、虚拟主机配置、优化)
    从0搭建vue3组件库:自动化发布、管理版本号、生成 changelog、tag
  • 原文地址:https://blog.csdn.net/xukongjing1/article/details/138813770