記一次uni-app Android原生插件開發(fā)歷程
一、項目背景與工具準備
為了滿足項目中對RFID射頻手持設備(PDA)讀取羊只耳標的功能需求,我們決定采用uni-app進行插件開發(fā),以兼容Android原生環(huán)境。本次開發(fā)主要使用了uni-plugin作為開發(fā)工具。

二、下載與導入插件開發(fā)工具
開發(fā)之旅的第一步,是從官方網站獲取uni-plugin離線SDK及配套demo。我們使用Android Studio將其成功導入,為后續(xù)的插件開發(fā)做好基礎準備。
三、構建插件模塊
緊接著,我們創(chuàng)建了一個名為“uhfg”的模塊,專門用于處理RFID相關的功能。導入uhf相關庫后,我們對build.gradle文件進行了調整,以確保其適配項目需求,為后續(xù)開發(fā)鋪平道路。
四、核心功能開發(fā)

1. 編寫支持類:為了處理設備通信和監(jiān)聽,我們編寫了UHFGUtil類和UHFGUtilListenner類,這兩類在插件中起到了關鍵的作用。
2. 創(chuàng)建模型類:為了滿足項目需求,我們設計了一系列模型類,用于存儲和處理從RFID設備讀取的數據。
五、插件打包與集成
使用Android Studio中的gradle工具,我們采用assembleRelease模式進行插件編譯。生成的aar文件與必要的libs文件組合成完整的原生插件。我們在項目中創(chuàng)建了專門的本地插件目錄,將插件包放置其中。在manifest文件中配置本地插件后,將其打包為自定義基座,以實現插件的調用。
六、云端插件發(fā)布與調試

開發(fā)完成后,我們將插件發(fā)布至云市場,通過云端方式供其他項目調用。我們重視插件的調試與優(yōu)化,解決了類名重復、第三方庫引入不當等導致的編譯錯誤,確保插件的兼容性和穩(wěn)定性。
七、問題與解答
在開發(fā)過程中,我們也遇到了一些問題:
問題1:導入UniPlugin-Hello-AS工程項目后,運行時虛擬器報錯“device support x86 but apk only supports armeabi-v7a”。針對此問題,我們需要確保開發(fā)的插件與目標設備的架構相匹配。
問題2:在打包uni-app插件時,選擇Gradle->插件module->Tasks->build->assembleRelease雙擊運行時失敗。針對這個問題,我們修改了插件module的gradle配置,將sdk的arr包的引入方式由compileOnly改為implementation。其他地方的compileOnly也需要進行相應的修改。這樣修改后,插件打包過程得以順利進行。雖然原生插件開發(fā)需要一定的Android原生知識,但借助uni-plugin等工具,我們可以更加高效地完成開發(fā)任務。此次開發(fā)流程大約耗時1.5天。開發(fā)源碼已上傳至Gitee倉庫,方便后續(xù)查閱與參考。遇到問題可以訪問我們的Gitee倉庫鏈接獲取解決方案。通過這些努力和實踐經驗積累我們可以不斷提升我們的開發(fā)效率和問題解決能力從而為用戶提供更優(yōu)質的服務和產品體驗。成功之路:插件module的aar文件獲取與金蝶云星空插件開發(fā)實戰(zhàn)

===============================
一、成功獲取插件module的aar文件
在獲取插件module的aar文件過程中,我們可能會遇到一些挑戰(zhàn)。當我們按照官網原生插件開發(fā)文檔添加依賴庫時,所有的依賴都被設置為compileOnly。在運行assembleRelease時報錯,這時我們需要將compileOnly改為implementation。這一過程雖然繁瑣,但卻是成功開發(fā)插件的重要一環(huán)。
二、關于金蝶云星空插件實戰(zhàn)開發(fā)
面向云星空二次開發(fā)的新手,我們?yōu)槟鷰硪粋€實戰(zhàn)教程,帶您了解如何在采購訂單列表工具條的“保存”操作中實現自定義提示。我們將以Visual Studio 2019為工具,使用C語言,結合金蝶云星空7.6.0版本,構建一個服務插件(APP插件)的示例。

三. 教程面向的對象及前置知識
本教程主要針對已經安裝好金蝶云星空系統(tǒng)和金蝶BOS IDE的開發(fā)者。對于系統(tǒng)安裝和基礎知識,建議參考之前的文章:金蝶云星空部署教程和二次開發(fā)基礎知識系列。本服務插件教程將從基礎開始,盡管與表單和列表插件有重疊,但我們會保留必要內容以確保新手能順利入門。
四、服務插件的功能與實現
服務插件的精髓在于其定制功能。例如,在用戶審核單據時,可以調用第三方接口處理數據,或者在保存采購訂單時,根據數量和金額等條件進行限制。這些功能都可以通過服務插件來實現。在實戰(zhàn)開發(fā)中,我們首先需要新建一個Visual C類庫項目,并引入星空系統(tǒng)類庫,如Kingdee.BOS.dll和Kingdee.BOS.Core.dll。然后,在EndOperationTransaction中編寫服務插件,包括信息提示窗口的實現以及特定單據操作時的邏輯處理。
五、開發(fā)步驟與注意事項

在開發(fā)過程中,我們需要在Visual Studio中創(chuàng)建類庫,引用相關庫,編寫服務插件代碼。完成編寫后,我們需要編譯生成Test.K3Cloud.SCM.MyAppPlugin.dll文件,并將其注冊到BOS中。重啟IIS服務器以激活插件。在操作過程中,如果遇到問題,記得檢查是否成功觸發(fā)了自定義提示,并嘗試重啟IIS進行問題解決。本教程只是一個基礎的開發(fā)示例,金蝶云星空平臺支持的熱更新和代碼調試將在后續(xù)教程中詳細講解。
現在,讓我們開始實踐服務插件開發(fā)的第一步吧!完成的同學可以在相關討論區(qū)分享你們的經驗,共同學習,共同進步。本教程的同步版本已在公眾號:代碼乾坤(CoderLand)發(fā)布,歡迎關注與交流。通過這個實戰(zhàn)教程,相信你對金蝶云星空的插件開發(fā)有了更深入的了解和掌握,未來在你的開發(fā)之路上必將更加得心應手。