fusionapp远程公告(微云)(代码片段)

bushrose bushrose     2023-02-17     386

关键词:

前言

在app中经常会有发送公告的需求,告知用户一些重大的事情。本文将使用FA重置版和qq收藏的笔记功能完成远程公告的功能。

远程公告的思路

  1. 在qq收藏新建笔记,设置好公告内容
  2. 分享笔记给好友,拿到外部链接地址
  3. FA发送http请求,解析出公告内容

在qq收藏新建笔记,设置好公告内容

  • 点击头像,在点击收藏

  • 点击右上角加号

  • 按照以下格式输入以下内容。
【公告标题】这是FA的公告标题【公告标题】
【公告内容】这是公告内容【公告内容】
【公告显示】开【公告显示】
【按钮标题】关闭【按钮标题】
【公告返回】关【公告返回】
【暗主题】关【暗主题】

每一块控制不同的显示效果

在笔记中录入:

分享笔记给好友,拿到外部链接地址

点击分享的链接,再点击右上角三个点,再点击复制链接。保存好这个链接,下一步需要用。

FA发送http请求,解析出公告内容

在FA新建工程,如何新建项目,不再赘述,可以前面的文章。把以下代码粘贴到程序启动事件中,将第一行的链接替换为上一步拿到的链接。


-- 代码来源于网络

url="https://sharechain.qq.com/c2282a70cb92e88f3ebae5c767543a4f"  -- 替换为自己的
local headers=["User-Agent"]="Mozilla/5.0 (Linux; Android 9; STF-AL00 Build/HUAWEISTF-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.99 Mobile Safari/537.36"
Http.get(url.."#t="..os.time(),nil,"UTF-8",headers,function(code,content,cookie,header)
  if(code==200 and content)then
    --这一堆是识别替换QQ远程的乱码
    local content=content:match(\'<div class="note%-content">(.-)</div>%s+</article>\')
    local content=content:gsub("</p ><p>","") or content;
    local content=content:gsub("<%/?p>","") or content;
    local content=content:gsub("</div><div>","") or content;
    local content=content:gsub("<%/?div>","") or content;
    local content=content:gsub("<%/?span>","") or content;
    local content=content:gsub("<br%s+/>","\\n") or content;
    local content=content:gsub("&nbsp;"," ") or content;
    local content=content:gsub("</div><div>","") or content;
    local content=content:gsub("!","\\n") or content;
    --替换结束
    公告标题=content:match("【公告标题】(.-)【公告标题】")
    公告内容=content:match("【公告内容】(.-)【公告内容】")
    按钮标题=content:match("【按钮标题】(.-)【按钮标题】")
    公告显示=content:match("【公告显示】(.-)【公告显示】")
    公告返回=content:match("【公告返回】(.-)【公告返回】")
    暗主题=content:match("【暗主题】(.-)【暗主题】")
    --暗主图=="开"    --这里手动开暗主题调试
    if(暗主题=="开")then--判断远程明暗主题切换
      UIColor="#222222"
      btColor="#ffffff"
      nrColor="#dfffffff"
     else
      UIColor="#ffffff"
      btColor="#000000"
      nrColor="#98000000"
    end
    公告布局=
    
      LinearLayout;
      orientation=\'vertical\';
      layout_width=\'fill\';
      layout_height=\'fill\';

      
        CardView;
        layout_gravity=\'center\';
        layout_width=\'80%w\';
        layout_height=\'36%h\';
        cardBackgroundColor=UIColor;
        layout_margin=\'0dp\';
        cardElevation=\'2dp\';
        radius=\'15dp\';
        
          LinearLayout;
          orientation=\'vertical\';
          layout_width=\'fill\';
          layout_height=\'75dp\';
          background=UIColor;
          
            TextView;
            id=\'bt\';
            layout_width=\'fill\';
            layout_height=\'fill\';
            text=公告标题;
            textSize=\'25sp\';
            textColor=btColor;
            gravity=\'bottom|center\';
          ;
        ;
        
          LinearLayout;
          orientation=\'vertical\';
          layout_width=\'fill\';
          layout_height=\'145dp\';
          layout_marginTop=\'75dp\';
          background=UIColor;
          
            TextView;
            id=\'nr\';
            layout_width=\'fill\';
            layout_height=\'fill\';
            layout_margin=\'35dp\';
            text=公告内容;
            textSize=\'15sp\';
            textColor=nrColor;
            gravity=\'left\';
          ;
        ;
        
          CardView;
          layout_gravity=\'bottom|center\';
          layout_width=\'75dp\';
          layout_height=\'35dp\';
          layout_marginBottom=\'15dp\';
          cardBackgroundColor=\'#FF0055FF\';
          layout_margin=\'0dp\';
          cardElevation=\'3dp\';
          alpha=0.85;
          radius=\'15dp\';
          
            TextView;
            id=\'nn1\';
            layout_width=\'fill\';
            layout_height=\'fill\';
            text=按钮标题;
            textSize=\'16sp\';
            textColor=\'#ffffff\';
            gravity=\'center\';
            onClick=function(v)
              tc.dismiss()
            end;
          ;
        ;
      ;
    ;
    tc=AlertDialog.Builder(this).show()

    if(公告返回=="开")then
      tc.setCancelable(true)
     else
      tc.setCancelable(false)
    end
    tc.getWindow().setContentView(loadlayout(公告布局));
    import"android.graphics.drawable.ColorDrawable"
    tc.getWindow().setBackgroundDrawable(ColorDrawable(0x00000000));
    tc.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
    bt.getPaint().setFakeBoldText(true)
    nr.getPaint().setFakeBoldText(true)
    nn1.getPaint().setFakeBoldText(true)
    if(公告显示=="关")then
      tc.dismiss()
     else
      tc.show()
    end

   else
    print("获取公告失败 "..code)
  end
end)

最终效果

粘贴保存后运行,看到如下效果,就说明已经完成了。

总结

通过qq收藏和fa,完成了简单的公告功能。除此之外,还可以通过水仙app或蓝奏云等完成类似的功能,等待大家去探索。

本文由【产品经理不是经理】gzh同步发布,欢迎关注

fusionapp自定义事件源码介绍(上)(代码片段)

前言文章主要说明在FA中的中文函数的代码实现,不仅要知道用法,更要知其实现的原理。前面的用法为FA中的用法,仅支持在FA中使用,源码可以在其它app中使用。非原创,代码收集整理于网络。进入子页面进入子页面("页面名... 查看详情

小白也能做应用之fusionapp增加b站视频页面(代码片段)

一、前言在上一节,我们新建了工程,做好了准备。本节在工程中加入B站网页,屏蔽页面广告。二、工程配置2.1、基础配置配置程序启动事件,填入以下代码加载网页("https://m.bilibili.com/index.html")--加载网页为软件自带的函数,... 查看详情

text工作公告(代码片段)

查看详情

sqlsql:从kb确定公告(代码片段)

查看详情

st2-057远程代码执行漏洞复现过程(代码片段)

0x01搭建环境dockerhttps://github.com/vulhub/vulhub/tree/master/struts2/s2-048docker-composeup-d 0x02搭建st2-057漏洞环境dockerexec-i-t88fd8d560155/bin/bash  后台启动进入docker 根据公告 https://struts.apache 查看详情

使用easyui实现的添加公告功能(后台管理)(代码片段)

...方便的,这两天又添加了几个小功能其中一个是添加公告。可以包括前台的公告。还有后台给管理员看的公告。后端实现的还是很粗糙的。实际项目中,公告具体出现的位置还有时机都应该是固定的。所以可以事先为这... 查看详情

chrome浏览器远程代码执行漏洞(无沙箱模式)(代码片段)

...家信息安全漏洞共享平台(CNVD)收录了GoogleChrome远程代码执 查看详情

hdu2795(线段树)(代码片段)

...acm.hdu.edu.cn/showproblem.php?pid=2795 题目大意:有一个h*w的公告牌,要在其上贴公告。现在有n个公告,每个公告的尺寸为1*wi,即高度都为1,现在依次给出n个公告的宽度wi,需要求出每个公告在广告牌所在的行数。要求:对于同一... 查看详情

markdownventure-stickymobileheader,顶部有公告栏(代码片段)

查看详情

uni-app99群公告推送功能(代码片段)

接口router.js//推送群公告router.post('/group/remark',controller.group.remark);app/controller/group.js'usestrict';constController=require('egg').Controller;classGroupControllerexte 查看详情

flutter文字上下滚动切换用于公告消息提示(代码片段)

效果预览1基本使用代码voidmain()///启动根目录runApp(MaterialApp(home:TestTipsPage(),));classTestTipsPageextendsStatefulWidget@override_TestTipsPageStatecreateState()=>_TestTipsPageState();class_TestTipsPag 查看详情

flutter文字上下滚动切换用于公告消息提示(代码片段)

效果预览1基本使用代码voidmain()///启动根目录runApp(MaterialApp(home:TestTipsPage(),));classTestTipsPageextendsStatefulWidget@override_TestTipsPageStatecreateState()=>_TestTipsPageState();class_TestTipsPag 查看详情

群公告详情(代码片段)

群公告因为大家可能是从不同的地方了解到这个群聊,可能是B站的算法小课堂、QQ聊天机器人、JAVA安卓聊天室、也可能是CSDN、博客园的的一些笔记记录或者说是在笔者的编程网站上了解的或者其他的地方,不过既然大家... 查看详情

uni-app100群公告推送功能(代码片段)

/pages/chat/group-remark/group-remark.vue<template> <viewclass="page"> <!--导航栏--> <free-nav-bartitle="群公告"showBack:showRight="true"bgColor 查看详情

vue垂直滚动文字公告效果(代码片段)

想做一个垂直滚动的公告栏效果,网上找了好久才找到一个靠谱的,有的不滚动,后来才研究清楚几个关键的知识。1.只要把第一个div向上滚动,后面的兄弟div不需要代码控制,它们会自动上移。2. that.play=... 查看详情

关于如何在公告栏显示自己的头像(代码片段)

...水平太差,所以就只好选了个顺眼的皮肤...看到别人博客公告栏可以显示自己的头像,所以去搜了搜怎么弄,emm,还是比较简单的。首先去自己的个人首页右键自己的头像-选择查看源代码,或者是右键头像-查看元素。<imgsrc=&q... 查看详情

qemu远程代码执行漏洞(cve-2017-2620)

漏洞描述 QEMU是一款开源模拟器软件。QEMU在实现上存在越界访问漏洞,在cirrus_bitblt_cputovideo中复制VGA数据时会触发此漏洞,导致QEMU进程崩溃或执行任意代码。解决方法 以下是各Linux/Unix发行版系统针对此漏洞发布的安全公告,可... 查看详情

30.纯css创作一个晃动的公告板(代码片段)

原文地址:https://segmentfault.com/a/1190000014983030感想:绝对定位+动画HTML代码:<divclass="signboard"><divclass="sign">THANKS</div><divclass="strings"></div><divclass="pintop">< 查看详情