uni-app和原生小程序混合開發(fā)的具體實現(xiàn)過程
現(xiàn)有一個十分龐大的微信小程序應用,想要把新功能利用uni-app來開發(fā),是否可行?有哪些優(yōu)缺點?
首先看到官方給出的解決方案
https://uniapp.dcloud.io/hybrid
方式1:把原生小程序轉(zhuǎn)換為uni-app源碼。有各種轉(zhuǎn)換工具,詳見
方式2:新建一個uni-app項目,把原生小程序的代碼變成小程序組件,進而整合到uni-app項目下。uni-app支持使用小程序wxml組件,參考
方式3:原生開發(fā)的小程序仍保留,部分新功能使用uni-app開發(fā)。
我們選用第三種解決方案,原生小程序保留,新功能使用uni-app來開發(fā)。
我們先新建一個原生小程序demo
創(chuàng)建成功后,目錄如下
記下來,去創(chuàng)建uni-app項目,這里我們通過vue-cli的方式來創(chuàng)建
// 安裝vue-cli npm install -g @vue/cli // 創(chuàng)建uni-app創(chuàng)建,選擇默認模版 vue create -p dcloudio/uni-preset-vue uniapp-project
創(chuàng)建成功后目錄如下
接下來我們打包一個子應用
npm run build:mp-weixin -- --subpackage=sub_uniapp // 或者 yarn build:mp-weixin --subpackage=sub_uniapp
記下來我們把dist/build/mp-weixin/下的sub_uniapp文件夾拷貝到原生小程序的根目錄中。
然后在app.json文件中增加對應的頁面路徑
接下來我們訪問這個頁面
發(fā)現(xiàn)圖片沒有顯示
我們需要去uni-app項目中,把頁面中的圖片路徑從絕對路徑改為相對路徑。
然后,重新打包,copy到小程序中,重新訪問頁面
到這里基本功能已經(jīng)實現(xiàn)了。
有一些問題需要注意:
- uni-app中的app.vue onLanuch生命周期并不會觸發(fā),在分包中,首次進入分包會觸發(fā)一次
- 如果需要在uni-app中依賴原生小程序中的方法,不好去實現(xiàn)。
- 在項目管理時增加了項目的復雜度。
補充:一些注意事項
1.原來是前端打包為apk或者ipa,現(xiàn)在打包為h5手機版讓后端上傳服務器給ios或者安卓鏈接,讓安卓和ios進行打包
2.如果使用原生會有一些很多方法不能使用例如:前端寫的微信登錄,拉起相機,掃描二維碼等都需要原生來做
3.所以說盡量前端能做,不要與原生混合開發(fā)
總結(jié)
到此這篇關(guān)于uni-app和原生小程序混合開發(fā)的文章就介紹到這了,更多相關(guān)uni-app和原生小程序混合開發(fā)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript中的JSON轉(zhuǎn)為Python可讀取
本文主要介紹了JavaScript中的JSON轉(zhuǎn)為Python可讀取,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01JavaScript 一行代碼,輕松搞定浮動快捷留言-V2升級版
前天熬了大半宿發(fā)了一篇[一行代碼輕松搞定快捷留言功能],同時發(fā)布了V1.0beta版的快捷留言功能和源代碼,之所以是beta版,就是當時感覺雖然基本功能有了,但是還不夠完善,特性也不一定合理2010-04-04javascript頁面上使用動態(tài)時間具體實現(xiàn)
這篇文章主要介紹了javascript在頁面上使用動態(tài)時間實現(xiàn)示例,需要的朋友可以參考下2014-03-03利用js實現(xiàn)可進行時間和工作調(diào)度的任務管理器
這篇文章主要為大家詳細介紹了如何利用js實現(xiàn)一個可進行時間和工作調(diào)度的任務管理器,文中的示例代碼簡潔易懂,有需要的小伙伴可以參考一下2023-10-10Javascript removeChild()刪除節(jié)點及刪除子節(jié)點的方法
這篇文章主要介紹了Javascript removeChild()刪除節(jié)點及刪除子節(jié)點的方法的相關(guān)資料,需要的朋友可以參考下2015-12-12