釘釘/支付寶小程序和微信小程序的區別及轉換方案

最近接到一個工做任務,是把釘釘小程序轉微信小程序...css

對,竟然還有這種操做,以前只聽過微信小程序轉支付寶小程序的,釘釘轉微信是什麼鬼😿node

實際操做以後發現,並非太複雜。nodeJS加vscode全局替換,很快就能改完。git

之因此沒有所有寫成程序來執行,一是由於我對兩邊的api不是太熟,這個項目也是新接手的,業務邏輯徹底不熟,寫程序耗費時間過久且很差排查錯誤;二是經過逐個api的報錯修改,能夠整理兩個小程序差別點,同時儘快熟悉業務代碼。
修復原有釘釘小程序的bug,加上轉爲微信小程序一共花費4個工做日的時間,原來預期是10個工做日,因此這個效率是能夠接受的。github

1. 修改文件後綴名

釘釘小程序和支付寶小程序幾乎沒有差異,最主要的是支付寶小程序全局變量 my, 釘釘小程序對應爲 dd。而釘釘小程序的文檔不如支付寶小程序詳細,因此看文檔直接看支付寶小程序的就能夠了。小程序

如今開始把釘釘轉微信啦!微信小程序

首先第一步是把文件後綴名改了,axml改成wxml,wxss改成acss;api

這一步能夠用JS腳本執行。
代碼地址緩存

2. 修改文件內部引用文件的後綴名

依然是axml改成wxml,wxss改成acss,採起全局替換便可。微信

3. 修改文件中import路徑

釘釘能夠引用絕對路徑,可是微信在wxml和js中只能引用相對路徑,層級須要手動修改下。網絡

4. API修改

釘釘/支付寶小程序與微信小程序的區別

釘釘小程序和支付寶小程序基本上沒有區別,把 dd改成my便可。如下我整理了一下釘釘小程序和微信小程序的區別,其實不是太大,遇到問題查一下文檔就能解決。

相比之下,釘釘小程序的編輯器很是難用,很容易預覽白屏,須要重啓編輯器,這一點真的很難接受。

api描述 釘釘小程序 微信小程序
點擊事件綁定 onTap bindtap
失去焦點 onBlur bindblur
本地緩存 dd.getStorageSync({key: 'score'}).data wx.getStorageSync('score')
toast提示 dd.showToast({content: '請填寫名稱'}) wx.showToast({title: '請填寫名稱',icon:'none'}) ,若是不設置icon:none,會默認顯示成功的圖標
時間選擇器 dd.datePicker 微信裏沒有此方法,能夠經過picker-view組件實現
模板語法 a: wx:
網絡請求header參數 dd.request中爲headers wx.request中爲header
事件對象 e.target.dataset.recordId 微信會轉成小寫字母e.target.dataset.recordid
子組件須要調用父組件的某個方法 父組件能夠將函數做爲屬性傳遞給子組件,子組件經過props接收 目前只能經過父組件事件監聽,子組件經過triggerEvent觸發父組件自身的方法
圖片/文件上傳 dd.chooseImage成功回調中,圖片的本地臨時文件路徑列表屬性名爲filePaths wx.chooseImage成功回調中,圖片的本地臨時文件路徑列表屬性名爲tempFilePaths
上傳文件uploadFile dd.uploadFile 參數對象中,name屬性非必傳 wx.uploadFile 參數對象中,name屬性必傳,做爲文件對應的 key,開發者在服務端能夠經過這個 key 獲取文件的二進制內容
登陸 調用my.getAuthCode獲取受權碼 wx.login調用接口獲取登陸憑證(code)。經過憑證進而換取用戶登陸態信息,包括用戶的惟一標識(openid)及本次登陸的會話密鑰(session_key)等。
滾動選擇器組件 picker-view 初始加載時能經過value值設置默認選中位置 初始加載時不能經過value值設置默認選中位置,感受是微信的bug
自定義組件 Component定義屬性用props Component定義屬性用properties
相關文章
相關標籤/搜索