1. 程式人生 > 實用技巧 >uni-app 開發 一套程式碼實現公眾號和小程式總結

uni-app 開發 一套程式碼實現公眾號和小程式總結

最近剛結束一個專案,接到需求的的時候要求寫一個小程式和公眾號,當時感覺沒啥問題,但是後面告訴我一個個很坑的要求 客戶週期只有一個月!!! 小程式沒問題,再加個公眾號就有點心慌了,然後只能去找解決方案了 ,查詢之後找到兩個框架 tarouni,但是很明顯啊 兩個都沒用過 花了兩個小時看了兩個文件 然後問了另一個前端 發現選taro時間上可能來不及(雖然我老想嘗試taro了) 因為taro是react的寫法 另一個同事沒接觸過啊 如果選了taro 碰到坑 我還得解決 然後還要帶著熟悉react 沒辦法 只能uni了(當然本人沒有嫌棄的意思,純粹是想玩taro)。

吐槽結束,那麼總結開始:

  1. 因為我們開發專案的時候 基本上都是使用微信開發者工具檢視效果,那麼問題就來了:為啥開發者工具上看著樣式是好的,但是在手機上,公眾號專案會出現x軸出現滾動條。這個問題很簡單啊,寬度超了唄。但是我疑惑啊,為啥小程式行,這裡就不行,沒道理啊。然後看是審查元素,發現出問題的地方 不是畫了border 就是來了margin,然後除錯一下 確實是他們引起的,那就改吧 給父容器來個box-sizing: border-box; ,好了解決。可能你會發現專案跑在瀏覽器上木問題 公眾號不也是H5嗎?很明顯啊 公眾號是執行在微信上,瀏覽器核心是人家自己的啊

2.關於授權、支付、分享,這些東西,很明顯公眾號和小程式是不一樣的啊,那麼簡單啊 各自對應的方法包起來唄 打包不同的應用的時候 啟用不同的配置唄。uni上,暫時就只能想到這些,因為沒找到能配置我想要的東西的地方

3.關於分享圖片 這個可以說是開發中耗時最長的,因為剛開始我以為uni對這些都處理好了,不用我來擔心, 然後根據文件屁顛屁顛的用canvas畫好了分享圖(canvas用的實在是少,只能看文件)。最後發現一切都是我想多了,可能是我太年輕了。

       1.如果是線上圖片,那麼圖片的域名一定要是在downloadFile下配置的,包括頭像

       2.你的二維碼是base64或者ArrayBuffer的 那麼使用getFileSystemManager寫個本地地址吧,因為微信上的canvas不畫base64啊

       3.你畫圖的canvas,小程式和公眾號不一樣啊 ,上面的事小程式可能碰到的 那麼下面就是公眾號的了

       4.小程式上我們可能會算比例 來保證分享圖的寬高,那麼公眾號就先別想了,寫死吧(可能是我沒找到,慚愧啊)

       5.至於圖片嗎,呵呵噠。跨域啊,能處理好跨域最好,處理不了那就麻煩後臺來個圖片轉base64的介面吧(我就是這樣的),公眾號下你放心,他能畫base64,

       6.然後就是你可能會碰到ctx.draw為啥不進裡面的回撥函式呢?來個簡單的吧,給它外層來個setTimeout(我就給了200ms),當然能直接執行的可以忽略

4.這裡就是公眾號自身的分享了,在資料渲染完成之後,直接開始配置config,和製作分享資訊吧,你就別想著等我點選分享那按鈕之後再配置了,還有就是別忘了wx = require('jweixin-module');

好了,可能是寫的專案不是很大 ,可能一些東西並沒有踩到,希望當再次遇到之後,能有個看的地方,不要重來一遍。然後就是uni的好處了,有很好的ui元件庫,特別是有個很全面的 uView,當然如果不想使用的話,那麼把vant的一套小程式的ui(他們可以說是很像)下載下來,自己整合成一個vue檔案就搞定了(我很多就是這樣乾的...),快速開發下也就只能這樣了