使用uniapp開發(fā)微信小程序基本流程及問題記錄

第一次寫小程序恩够,遇到了很多問題,便想記錄下來羡铲。
在這里對(duì)小程序注冊(cè)就不做過多贅述蜂桶。
如有問題,歡迎指正也切。

分包

在開發(fā)小程序前扑媚,最好先根據(jù)自己開發(fā)的功能模塊或其他邏輯做好分包,不然后期在上傳代碼時(shí)報(bào)錯(cuò)才發(fā)現(xiàn)這個(gè)問題雷恃,再去分包就很麻煩疆股。小程序限制每個(gè)包不超過2M,可以分9個(gè)子包倒槐,總包大小不超過20M旬痹。



pages是主包,里面放置默認(rèn)啟動(dòng)頁面/TabBar頁面,目錄名為page_開頭的都是分包两残。

分包步驟

開啟分包優(yōu)化

使用分包之后會(huì)發(fā)現(xiàn)子包的組件和js文件會(huì)被打包到主包的vendor.js文件中永毅,這就導(dǎo)致了vendor.js過大引起主包超過2M(在微信開發(fā)者工具中可查看)



這時(shí)就需要開啟分包優(yōu)化:打開manifest.json→源碼視圖在mp-weixin節(jié)點(diǎn)下,添加如下代碼

"optimization" : {
            "subPackages" : true
        }

開啟之后重新發(fā)布打包微信小程序人弓,分包的js文件將不會(huì)再打包到主包的vendor.js中了沼死。

在pages.json中配置路徑

在pages.json中添加subPackages數(shù)組,切記要放在pages后面票从,否則無法生效漫雕。


隱私保護(hù)設(shè)置

在2023年10月30日發(fā)現(xiàn)小程序中所有上傳圖片處點(diǎn)擊無反應(yīng),無法換起從手機(jī)選擇圖片或拍照上傳功能(之前可以正常使用)峰鄙。


在查詢搜索之后發(fā)現(xiàn)是隱私保護(hù)配置的問題浸间,下圖為微信官方文檔中的截圖,具體內(nèi)容可進(jìn)入頁面查看
https://developers.weixin.qq.com/miniprogram/dev/framework/user-privacy/PrivacyAuthorize.html

以下為隱私保護(hù)設(shè)置步驟:

在微信公眾平臺(tái)中找到設(shè)置

基本設(shè)置中找到服務(wù)內(nèi)容聲明吟榴,更新用戶隱私保護(hù)指引

根據(jù)需要使用的功能設(shè)置隱私協(xié)議


設(shè)置完成后生成即可使用功能

當(dāng)然上傳圖片的域名也需要再微信公眾平臺(tái)中配置好


掃描普通二維碼魁蒜,進(jìn)入小程序

在微信公眾平臺(tái)中開發(fā)管理→開發(fā)設(shè)置→掃普通鏈接二維碼打開小程序進(jìn)行配置,小程序需發(fā)布方可使用



同時(shí)代碼中的路徑需要保持一致

<view class="qrimg">
   <tki-qrcode ref="qrcode" :cid="cid" :val="scanUrl" :size="400" :onval="true" :loadMake="true" :usingComponents="false" loadingText="二維碼生成中" @result="qrR" />
</view>
<script>
    import tkiQrcode from "@/components/tki-qrcode/tki-qrcode.vue"
    export default {
        components: {
            tkiQrcode
        },
        data() {
            return {
                cid: 'tki-qrcode-canvas', // 二維碼唯一ID
                src: '', // 二維碼生成后的圖片地址或base64
                user: {
                    id: '',
                    name: '',
                },
                scanUrl: ''
            };
        },
        onLoad(option) {
            const item = JSON.parse(decodeURIComponent(option.user));
            console.log('item', item)
            this.user.id = item.id
            const name = item.name.replace(/"/g, '');
            if (name === 'null') {
                this.user.name = ''
            } else {
                this.user.name = name
            }
            this.scanUrl = 'https://*****.cn/?doctorId=' + this.user.id
        },
        methods: {
            qrR(e) {
                console.log('e', e)
                console.log('this.scanUrl', this.scanUrl)       
            }
        }
    }
</script>

體驗(yàn)版緩存問題

發(fā)現(xiàn)該問題是因?yàn)樵跍y(cè)試階段吩翻,內(nèi)部人員有限兜看,需要時(shí)不時(shí)刪除數(shù)據(jù)再重新下拉最近使用的小程序測(cè)試,就導(dǎo)致原來的小程序中緩存了數(shù)據(jù)狭瞎,但實(shí)際數(shù)據(jù)已刪除细移,產(chǎn)生數(shù)據(jù)問題,頁面加載出錯(cuò)熊锭,開發(fā)人員以為是代碼問題弧轧,排查了很久,才知道目前微信小程序不支持在體驗(yàn)版里獲取版本號(hào)碗殷,來判斷是否有版本更新精绎,正式版里可以做到判斷版本更新后自動(dòng)清除緩存,所以在體驗(yàn)版里只能由用戶手動(dòng)清除緩存再重新掃描體驗(yàn)版二維碼進(jìn)入锌妻。


uni.navigateTo改為uni.navigateBack

開發(fā)中遇到一個(gè)問題從A頁面進(jìn)入B頁面代乃,B頁面進(jìn)入C頁面,C頁面返回B頁面需要攜帶參數(shù)仿粹,之前我使用的是uni.navigateTo

uni.navigateTo({
    url: '/page_addFollowupSummary/addFollowupSummary/addFollowupSummary?item=' + encodeURIComponent(JSON.stringify(item)) + '&from=' + 'followupSummaryTemplate'
})

從C頁面返回到B頁面搁吓,期望再點(diǎn)擊返回按鈕從B頁面回到A頁面,但這時(shí)B頁面的上一個(gè)頁面是C頁面吭历,就導(dǎo)致回到了C頁面擎浴,形成了循環(huán),我首先錯(cuò)誤的想到去修改返回的頁面棧毒涧,getCurrentPages()可以獲取當(dāng)前頁面棧的實(shí)例,以數(shù)組形式按棧的順序給出,數(shù)組中的元素為頁面實(shí)例契讲,第一個(gè)元素為首頁仿吞,最后一個(gè)元素為當(dāng)前頁面。但我發(fā)現(xiàn)捡偏,不僅不能修改唤冈,且官方也不推薦修改。



所以后面改成了使用uni.navigateBack银伟,將需要使用到的參數(shù)先緩存你虹,在B頁面獲取使用完之后再清除,完美解決該問題彤避。

//C頁面
addTemplate(item) {
        uni.setStorageSync('params',item)
        uni.navigateBack()
}
//B頁面
onShow(){
        let params = uni.getStorageSync('params'); // 讀取參數(shù)值
        this.messageContent = params.value;
        uni.removeStorageSync('params');
}

未完待續(xù)......

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末傅物,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子琉预,更是在濱河造成了極大的恐慌董饰,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,423評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件圆米,死亡現(xiàn)場(chǎng)離奇詭異卒暂,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)娄帖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門也祠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人近速,你說我怎么就攤上這事诈嘿。” “怎么了数焊?”我有些...
    開封第一講書人閱讀 157,019評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵永淌,是天一觀的道長。 經(jīng)常有香客問我佩耳,道長遂蛀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,443評(píng)論 1 283
  • 正文 為了忘掉前任干厚,我火速辦了婚禮李滴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蛮瞄。我一直安慰自己所坯,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,535評(píng)論 6 385
  • 文/花漫 我一把揭開白布挂捅。 她就那樣靜靜地躺著芹助,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上状土,一...
    開封第一講書人閱讀 49,798評(píng)論 1 290
  • 那天无蜂,我揣著相機(jī)與錄音,去河邊找鬼蒙谓。 笑死斥季,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的累驮。 我是一名探鬼主播酣倾,決...
    沈念sama閱讀 38,941評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼谤专!你這毒婦竟也來了躁锡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,704評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤毒租,失蹤者是張志新(化名)和其女友劉穎稚铣,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體墅垮,經(jīng)...
    沈念sama閱讀 44,152評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡惕医,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,494評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了算色。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抬伺。...
    茶點(diǎn)故事閱讀 38,629評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖灾梦,靈堂內(nèi)的尸體忽然破棺而出峡钓,到底是詐尸還是另有隱情,我是刑警寧澤若河,帶...
    沈念sama閱讀 34,295評(píng)論 4 329
  • 正文 年R本政府宣布能岩,位于F島的核電站,受9級(jí)特大地震影響萧福,放射性物質(zhì)發(fā)生泄漏拉鹃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,901評(píng)論 3 313
  • 文/蒙蒙 一鲫忍、第九天 我趴在偏房一處隱蔽的房頂上張望膏燕。 院中可真熱鬧,春花似錦悟民、人聲如沸坝辫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽近忙。三九已至竭业,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間银锻,已是汗流浹背永品。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評(píng)論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留击纬,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,333評(píng)論 2 360
  • 正文 我出身青樓钾麸,卻偏偏與公主長得像更振,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子饭尝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,499評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容