fusion app遠程公告(微雲)

来源:https://www.cnblogs.com/bushrose/archive/2023/02/16/17128655.html
-Advertisement-
Play Games

前言 在app中經常會有發送公告的需求,告知用戶一些重大的事情。本文將使用FA重置版和qq收藏的筆記功能完成遠程公告的功能。 遠程公告的思路 在qq收藏新建筆記,設置好公告內容 分享筆記給好友,拿到外部鏈接地址 FA發送http請求,解析出公告內容 在qq收藏新建筆記,設置好公告內容 點擊頭像,在點 ...


前言

在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同步發佈,歡迎關註


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、Vue 2 1、父組件向子組件傳值,使用 props:可以通過在子組件上綁定 props,然後在父組件中通過 v-bind 綁定相應的數據來傳遞數據。 父組件中的代碼: <template> <div> <child-component :prop-a="dataA"></child-compo ...
  • HTMLCollection 和 Nodelist 的異同? 1. w3 關於這兩者的定義 HTMLCollection: An HTMLCollection is a list of nodes. An individual node may be accessed by either ordin ...
  • 原文地址:我的稀土掘金 預設打包: 所有文件都放在了assets文件夾 期望: css,js.img等等進行歸類 解決辦法 vite.config.js build:{ rollupOptions:{ output:{ chunkFileNames: 'static/js/[name]-[hash] ...
  • 一 發新版本導致 問題的根源是伺服器js文件更新了,頁面還在請求以前的js文件。可以保留之前webpack打包的文件,但是時間久了文件體積會積累到很大,而且從產品角度更希望用戶訪問新的資源。所以最好的解決方式是在報錯時給用戶提示,用戶點擊確認後刷新頁面。前端如何能catch到這種錯誤? 目前還沒找到 ...
  • 直接上重點。 如果是定位不准,Web瀏覽器端, 1,要使用者必須要做個人認證或者企業認證,且通過審核。 2,請求的網頁必須是https協議。 3,請求的功能變數名稱必須是加入到應用的Referer白名單。進入到應用設置里查看。 4,申請的應用類型必須是瀏覽器端。且必須勾選對應的服務。 有時申請地圖服務的人和 ...
  • 談到java中的併發,我們就避不開線程之間的同步和協作問題,談到線程同步和協作我們就不能不談談jdk中提供的AbstractQueuedSynchronizer(翻譯過來就是抽象的隊列同步器)機制; (一)、AQS中的state和Node含義: AQS中提供了一個int volatile state ...
  • 組件設計是通過對功能及視覺表達中元素的拆解、歸納、重組,並基於可被覆用的目的,形成規範化的組件,通過多維度組合來構建整個設計方案,將這些組件整理在一起,便形成組件庫。本文我們主要講述基於Vant CLI的自建組件庫。Vant CLI 是一個基於 Vite 實現的 Vue 組件庫構建工具,通過 Van... ...
  • 進位之間的轉換 1.1 電腦硬體的基本認知 cpu: 中央處理器. 相當於人的大腦.運算中心,控制中心. 記憶體: 臨時存儲數據. 優點:讀取速度快。 缺點:容量小,造價高,斷電即消失. 硬碟: 長期存儲數據. 優點:容量大,造價相對低,斷電不消失。 缺點:讀取速度慢. 操作系統:統一管理電腦軟硬 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...