Linux版釘釘封裝

項目源碼可在GitHub上查看https://github.com/nashaofu/dingtalk。由于平臺審核,導致文章內(nèi)容有刪減,如需查看完整文章,請移步nashaofu在路上

聲明

本作品只是自己開發(fā)的練習作品,沒有用于任何商業(yè)目的,開源出來也就為了方便他人,如有問題請在Github上聯(lián)系我。也請各位不要把這個版本的釘釘用于其他目的。

我為什么要做這個版本

其實我想應該有很多人都想問,為什么釘釘團隊不推出Linux版本的釘釘,尤其是釘釘采用的技術是可以跨平臺的。
開發(fā)Linux版的釘釘是在我使用Linux后開始萌發(fā)的,由于公司是使用釘釘辦公,所以有時候傳文件什么的非常不方便。最開始是網(wǎng)頁版的釘釘,后來在chrome里面找到了一個釘釘?shù)膽?/a>(應用頁面里包裹了一個webview標簽,標簽URL鏈接到釘釘網(wǎng)頁版)。但說句實話,這兩個使用起來都很蛋疼。首先,頁面主區(qū)域不能最大化;其次是總要開一個窗口,感覺用起來總是很別扭,有時候不小心就會把窗口給關掉了。

項目實現(xiàn)功能

  1. 首先解決了上面說到的問題
  2. 支持新消息提示(顯示出通知和未讀消息徽章)
  3. 支持版本更新檢測
  4. 任務欄顯示應用圖標,并支持快速打開和右鍵菜單
  5. 添加支持對文本的郵件菜單復制與粘貼
  6. 添加了熱更新功能支持(修復一些小BUG用,否者每次都只能狗重新下載安裝才能解決BUG)
  7. 支持屏幕截圖,并且支持多顯示器截圖。截圖快捷鍵為ctrl+alt+a

項目中遇到的問題

  1. 對于外部文件引入時的安全問題
    1. 在界面右上角的幾個按鈕使用到了iconfont,但在引入iconfont文件時出現(xiàn)了問題,頁面采用的時https協(xié)議,所以不允許http或者其他的協(xié)議引入資源(base64也是不可以的),最后采用直接從iconfont上引入的方式解決。
    2. 在做熱更新和版本更新檢測的時候,本來是打算吧這部分代碼寫到渲染進程的,但后來發(fā)現(xiàn)頁面中指定了跨域請求的范圍,即只有聲明的域才能夠訪問,如下圖所示
      跨域.PNG

      最后的解決方案是把,這些請求都放到主進程,這樣就避免了這個問題。

  2. 消息提示功能,對于這個問題,我也是參考了electron版本的微信之后干的,采用很暴力的辦法,就是每2s掃描一下消息列表dom元素,獲取dom上的徽章數(shù)值之和,然后把這個設置到徽章上。其次是系統(tǒng)提示信息的展示,對于這個electron文檔中沒有提及到,但后來查到直接使用Notification就行了。
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容