編寫package.json文件


  • 編寫package.json文件

image

image

iOS 插件包 至少需要包含:package.json文件 和 ios文件夾(名稱必須是小寫的ios)里面包含 .a (.a庫必須是lib開頭命名,比如libWeexDCRichAlert.a)或framework。

  • 生成.zip包

將DCloud-RichAlert文件夾打成zip包,zip包的名稱為(DCloud-RichAlert.zip)然后准備提交插件市場,其中DCloud-RichAlert文件夾名稱和package.json 里id的值一致,zip包的名稱是id值。

  • 如果想要共享給其他開發者,把這個插件提交插件市場

提交插件到DCloud插件市場

不提交插件市場,也可以把生成的插件放到HBuilderX里,然后提交雲端打包使用,提交到雲端打包之前確保插件在本地是調試通的,否則雲端打包出問題,增加排查問題的難度。

編寫原生代碼時注意事項

目前 HBuilderX 正式版雲端打包機使用的Xcode版本為 10.X,Xcode11.0 及以上版本對@available(, *)的實現做了調整打包后的.a庫不兼容低版本的Xcode, 所以如果使用Xcode 11.0及以上版本開發插件並且插件中代碼用到了@available(, *)關鍵字請按下圖修改,否則可能導致打包失敗。報錯 Undefined symbols "___isPlatformVersionAtLeast" (使用 HBuilderX alpha 版本沒有此問題,正式版雲端打包機近期會更新到最新的Xcode版本)

image

OKR 499

1 工作時間:14:00-15:00

2 工作目標:

  • 商城完善、優化,API對接,UniApp插件

3 工作過程:

  • 整理文檔,分析源碼,編碼

4 工作結果

252-eshop

uni-app原生插件(native plugin)開發指南

概述

傳統webview的原生擴展是通過webview橋方式,比如5+app。 uni-app的js運行在獨立的jscore里,而不是webview里,它的原生擴展是另一套模式,是基於開源項目weex的0.26.0版本架構的擴展機制。

weex的插件也可以拿到uni-app生態中使用。

從開發方式相比,uni-app的原生插件開發模式更簡單。webview橋方式需要在原生層和js層分別做很多工作。而uni-app的原生插件開發主要在原生層做封裝即可。 從使用方式相比,5+的原生擴展需要離線打包,而uni-app的插件可以在線打包,插件市場還有很多優秀原生插件可拿來即用。

uni-app的原生插件分兩種類型:

  • Module模式:能力擴展,無嵌入窗體的UI控件。大部分插件都是屬於此類,比如調用計步器API。 代碼寫法為通過js進行require,然后調用該插件對象的方法。如涉及一些彈出框、全屏ui,也仍然屬於Module模式。類似於前端里的js sdk。

  • Component模式:在窗體中內嵌顯示某個原生ui組件。比如窗體局部內嵌某個地圖廠商的map組件,上下混排其他前端內容,就需要把這個原生地圖sdk封裝為Componet模式。代碼寫法與vue組件相同,在template里寫組件標簽。類似於前端里的vue組件。 在uni-app中支持vue和nvue兩種頁面,vue頁面基於webview排版引擎渲染,nvue頁面基於原生排版引擎渲染。

  • vue頁面中僅支持使用Module類型的原生插件,不支持調用同步方法返回數據

  • nvue頁面中支持使用Module和Component兩種類型的原生插件。也就是如需實現嵌入頁面的ui組件,前提是該頁面需要使用nvue編寫。

uni原生插件上線步驟

  • 下載5+ SDK配置原生開發環境,在原生環境中開發調試插件業務邏輯

    • Android平台需使用AndroidStudio

    • iOS平台需XCode10+(需Mac環境)

  • 開發調試完成后導出原生庫文件

    • Android平台可以是jar或aar包

    • iOS平台可以是a或framework包

  • 生成uni原生插件包(zip)

    • 配置package.json文件

    • 與前面導出的原生庫文件一起打包

  • 在HX中使用uni原生插件包提交雲端打包,驗證uni原生插件包是否正確

  • 上傳uni原生插件包到插件市場審核

  • 審核成功后其他開發者可購買、使用uni原生插件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM