微信小程序開發科普,讓你1小時內從入門到上手|雷鋒網公開課

2021-01-15 雷鋒網

1月9日,微信小程序正式上線,網際網路迎來了一次狂歡。

張小龍在上個月的公開演講中表示,「小程序是一種比現有所有 App 更加靈活,更加唾手可得的一種形態,並將無處不在。」作為微信的一種新形態,小程序不僅擴大了微信的生態,也被看作是移動網際網路的「革命者」。

任何文字解析都不如視頻直播直觀。

本次硬創公開課雷鋒網請到了「開眼」視頻的技術負責人為大家直播演示講解如何開發一款視頻微信小程序。「開眼」視頻是一款短視頻日報應用。由「開眼」視頻團隊製作微信小程序「開眼Eyepetizer」,作為為數不多的第一批上線的視頻類小程序,受到了許多開發者的關注。

嘉賓介紹:

楊凱,「開眼」視頻團隊技術負責人。

曾供職於 360,是 360 手機桌面創始團隊成員之一,由他參與研發的該款桌面在國內第三方桌面市場很長時間排名第一。2014 年加入豌豆莢,任豌豆莢 Tech Lead,負責豌豆莢主程序開發,主要參與網絡庫優化,UI 性能調優,通過代理緩存多媒體 web 頁等工作。後加入「開眼」視頻團隊,作為技術負責人,負責技術開發、迭代工作。

下文為雷鋒網(公眾號:雷鋒網)整理的本次公開課直播分享中的要點。課後陳凱老師還分享了本次課程中完成的 demo,關注雷鋒網「唯物 」公眾號(ID:okweiwu),回復「 小程序」即可獲取連結。

今天主要講一下微信小程序的開發,希望通過直播開發一個「開眼」視頻的小程序,幫大家了解微信小程序的開發步驟、流程以及基本 API 的使用,內容主要包括以下幾個方面:

開發一個可滾動列表,在這個列表的製作中,我們會熟悉微信小程序數據綁定的方法,以及怎麼樣發起一個網絡請求;

處理點擊事件,通過這一操作了解微信是怎樣做事件綁定的;

在列表的指定位置,展現一個視頻播放器,通過這一操作了解微信小程序給我們的視頻標籤是怎樣使用的;

將頁面分享給好友,在好友對話裡可以看到製作的微信小程序。

大家可以看到「開眼」視頻小程序就是一個簡單的列表,列表中的每一個畫面其實都是一個可以點開播放的視頻。進一步分析可以得知,在我們看到的每一個視頻封面圖上有一個 icon,圖下面是這個視頻的文字介紹,標題以及分類。繼續向下拉會發現,有多少視頻,就會顯示多個元素,並且是刷新不到頭的。當我們點擊一個視頻封面或播放按鈕 icon 時,視頻會開始播放,接著點擊播放第二視頻時,第一個視頻就會自動停止播放,以上就是我們這堂課想要完成的事情。

步驟一:開發一個可滾動列表

由於時間關係,本次直播不會從零開始做這款小程序,會直接從微信的 demo (小程序組件)中開始操作。

這是微信小程序官方給出的一個 demo,可以看到有兩個 tab,今天的操作主要是在第二個 tab 的右邊再添加一個 tab,在第三個 tab 中實現一個跟「開眼」視頻小程序一樣的功能。

可以看到 pages 列表內容非常多,其內容主要是定義或聲明一下在這個小程序中會用到一些界面。windows 花括號裡面的一些選項是幫你定義 tool bar 上的顏色和信息,可以在這個頁面看到demo 中 toolbar 的顏色就在這裡設置的。      

在 tab bar 裡新加一個「開眼視頻」文件夾,配置地址是剛剛寫好的,抄過來就好,配製完成可以看到左邊的頁面已經出來了,雖然沒有內容,但第三個 tab 的框架已經完成了。接下來是繼續開發這個 tab,我一般會直接從之前寫好的代碼裡複製過來,然後進行一些簡單的修改,演示一下變化過程。

注意要把相關文件名也改成「開眼視頻」,否則會出現找不到布局文件的情況發生。

文件夾名稱改完後,可以看到剛在第三個 tab 裡添加的內容,已經可以顯示出來了,這是一個微信小程序官方 audio 的頁面,還需要對這個頁面進行一些改動。

首先寫一下這個頁面的布局文件,把沒有用的布局文件刪掉,在最上層定義一個 view,進行最外層的展示,然後會加一個 image 標籤,這個標籤主要的功能是展示剛才看到的 cover 圖(由於時間關係,直播時省略了敲代碼步驟,直接從之前的文件中拷貝)。

解釋一下拷過來的這幾行代碼。第一代碼是 WX : for,前面 WX 是微信的簡稱,後面的 for 是說,它會在你的 JS 文件裡找到一個名字叫 videos 的變量,該變量是一個數組,image 這個便籤會重複多次,直到和 videos 數組長度一致。

後面 for-item 標籤是指,每一個 image 標籤可以通過 video 變量名拿到和它綁定在一起的視頻數據,例如下面 video.coverForFeed 就是把當前綁定的視頻數據中 coverForFeed 欄位賦值給 image 的 src。

接下來看下 GS 的寫法,先定義一個 videos,也就是剛剛在布局文件裡聲明需要的,這個 videos 會在 onload 裡賦值。解釋一下 onload 這個方法:頁面被加載的時候,onload 會被調用。在微信小程序官方開發文檔中也可以看到這個方法的相關聲明,其中:

onload 是頁面被加載;

onready 是第一次渲染完畢;

onshow 是監聽事件顯示;

onhide 是監聽頁面被隱藏。

如果有前端開發經驗的話,可以看到跟 window 的很多頁面很像.最常用的是 onload,再仔細看一下這個方法的使用,在這個地方會嘗試調用一個叫 load 的方法,並且把「我們自己」傳進去,再傳一個options。解釋一下 options,舉個簡單的例子,如果想調一個這樣的配置,可以看到它的 url=page/item/item,後面會帶一個參數,參數名叫 id 值等於 1,這個方法是在調用者那邊使用的,被調用者也就是被喚起的頁面怎麼樣讀到這個 id 等於 1 的參數呢?是通過 const id = options.id 這個代碼,options 相當於頁面間傳遞參數傳遞的一個工具。                                                                                              

再看下 load 的方法,一行一行的來看,第一行 pages 和 options 是兩個傳參,第二行 wx.ewqiest 是發送一個 API 請求,注意,小程序官方文檔裡的對 wx.ewqiest 的定義是發送一個 HTTPS 請求,現在是本地操作,如果是線上環境的話,一定要寫成 HTTPS,否則會被攔截。完整示例寫法如下:

url 是請求的地址;

data 是 url 裡的參數,也就是我們傳進去的參數;

header 是我們發送 HTTPS 請求的時候所帶的 header;

success 當發送成功時,這個方法會被回掉;

fail 當請求失敗時,會回調這個方法,通知你失敗的原因。

再回到開發頁面,video:videoData 是說把本地變量變為配置的參數,要注意的是微信小程序和 Vue 不同,小程序的數據不是雙向綁定的,或者說不是默認雙向綁定的,如果數據或數據結構發生了改變,想通知到 video 層級上,讓 video 去刷新,必須要通過 page 中的 setdata 來實現。也就是說必須要這樣寫, videos 才會生效(video=videoData 的形式不不會生效)。

現在已經把簡單的列表寫好了,回到微信小程序的開發列表裡可以看到,已經顯示出了我們想要的效果,我們請求到了 6 個視頻,界面上顯示了六個 cover 圖。微信會對 image 標籤有默認的高和寬(240*320 像素),所以需要對圖片進行微調。

接著寫 css,微信的 css 語法和標準的 css 語法幾乎沒有區別,只是有一些子集不支持,這些在微信的開發文檔裡也有寫,但是我們一般用到的都有。需要額外講下 rpx,這是微信小程序裡自己定義的一個屬性。這個屬性的定義是說它認為所有屏幕的寬都是 750 個 rps,也就是說,你拿到一臺 iphone 5 和一臺 iphone 6S,它的寬都是750 rpx。

但是會反過來算一個像素等於多少 rpx,在 iphone5 裡,假如說一個像素等於一個 rpx的話,在 iphone 6 裡,兩個像素等於一個 rpx。這樣做的好處是降低了 UI 的適配成本。

到這裡本堂課的第一個目標已經完成,已經開發完成了一個可滾動的列表,並熟悉了數據綁定和網絡請求。 

步驟二:處理點擊事件

接下來要處理一個點擊事件,點擊事件觸發之後,會在圖片原來的位置展示一個視頻播放器,並且播放圖片所代表的視頻。

先看一下微信小程序定義的的事件綁定過程是怎樣的:

在組件中綁定一個事件處理函數,如 bindtap,這個用戶在點擊組件的時候,就會出發到這個 video 的 bindtap。

高亮的這幾行意思是我把一個函數 tapname 綁在 video 標籤的點擊上。也就是說當前這個 video 標籤被點擊時,系統會調用名字為 tapname 的方法,並且把當前 video 的一些參數傳到這個 tapname 函數裡。

接下來在項目裡定義一個綁定,把 image 的點擊事件綁定在一個 onTap 的方法上。接下來要在 JS 裡實現這個 onTap 的方法。

在 JS 裡 onload 下面,重起一行接著寫 onTap:function (element),微信小程序官方文檔中對 element 的定義中包涵了幾個屬性:

type (事件類型);

timeStamp(事件生成時的時間戳)

target(觸發事件組件的一些屬性值結合)

currentTarget(當前時間的一些屬性值集合)

接下來要實現一個方法叫 tap,它需要兩個傳參,第一個是 page,第二個是 element。page 就是 this,element 就是剛剛定義的 element,傳進來後可以看到這個方法就被調用了。打一個 log 可以看到以下結果。


每點一次,下面都會出現一個 tap,也就是說已經成功的把 video 上的事件傳遞到了 JS 的處理函數中。

第一段代碼中的 element 就是剛剛傳過來的被點擊元素,currenttarget 是當前被點擊的目標… 重點講下videoUrl,videoUrl 是剛在開發中定義的一個內容,不是系統自帶的,看下它是從哪裡來的


data-video-id 的意思是把當前視頻 id 附給 image 標籤,作為這個 image 標籤上的屬性,當點擊一個 image 標籤是,JS 可以從傳入的 element 中讀到這個值。

因為列表裡有 6 個標籤,所以必須要知道當前點擊的標籤是什麼,以及當前被點擊的標籤上綁定的 video 數據,來決定後面需要播哪一個視頻。

id 我們用不到,先刪去。上面的寫法是 -video-url 這個地方寫成 videoUrl 略有不同。原因是微信小程序會幫開發者們做一件事情,把 data 和後面的橫線去掉,然後自動駝峰。

上面這句話的意思是從被點擊的 element 中拿到當前標籤綁定的 video 的播放 url 是什麼。可能很多做前端的同學心裡會有疑問,為什麼要費這麼大勁去拿,而不通過一些其它的手段。因為微信小程序廢除了 document,以及 window 的很多方法,目的是讓小程序變成純數據驅動的編程思想,也就是說所有的事件和所有的數據,一定是以事件或者是消息這樣的方式來傳遞的,開發者沒有辦法主動的去拿到當前顯示的 video。

舉一個簡單的例子,如果在頁面加載完後,設一個 timer 定時器,每五秒中告知當前列表中展示的第一個元素是什麼,這個在小程序裡做不到。因為沒有辦法主動拿到當前列表這個元素,也就沒辦法拿到列表上展示的內容,只有一種辦法,用戶手動觸發了一個事件時,開發者才可能拿到這個事件相關的(並不是所有的)一些信息。

為了取到當前被點擊的這個 item 上面綁定的 video 的播放地址,要通過這種方式來實現,而不能通過其它的方式來實現,這個確實有點繞。

這個思想在微信小程序裡可以說是最重要的思想,也就是 DOM 模型幾乎完全不能用。這個可能給很多前端開發帶來非常大的困擾。

步驟三:在列表指定位置展示視頻播放器

接著來看一下,現在還要做另外一件事,要在界面裡加一個 video 標籤,id 叫 video,class 叫 video,這樣寫主要是為了一會兒 CSS 綁定用。

後面它的 style 寫法,第一是 display,為什麼用這個屬性,據我個人的經驗,在微信裡如果想隱藏一個 video 標籤,只有這一種方法可以隱藏,也就是說 display 屬性設成 none,才可以把 video 隱藏,visibility hidden 方式都不行。

top 就是說這個視頻標籤在列表中距離頂端的位置,所有帶兩層大括號的東西都是引用到 JS 裡的變量,兩個變量一個是 covertop,一個是 videoDisply,src 是 currentUrL,就是說 video 播放地址是什麼,這也是第三個變量。                                                                        

對上面三個變量做個定義:

videoDisplay 是 none,默認隱藏 video 標籤;

covertop 是 video 標籤默認頂部,隱藏在那裡都可以;

currentUrl 開始時為空,也就是說在開始時,視頻播放器裡是沒有地址的。

再來看一下 tap 事件,直接複製過來三行。前面 page.setdata 是給下面的 data 進行一種更新,這是一種特殊的複製方法。offsettop 這個屬性會告訴你當前被點擊的元素,相對它的父節點向下挪了多少位置 。currentUrl,就是剛才拿到的 url。後面的 videodisply:block,是指現在可以顯示出視頻元素了。

試一下,頁面刷新了,說明更改生效了。可以看到視頻播放器已經出現了,而且進度條已經顯示出時間了,但是還沒有開始播。下一步想辦法讓它開始播放。


先看一下微信小程序的的定義:

微信定義一個方法叫 creatVideoContext,意思是說在傳入一個 videoid 時,它會把當前 videoid 的 video 元素與系統的播放器進行綁定,也就是完成這個操作後的你添加的這個元素就可以播了。                                                                    

微信官方共提供了play、pause、seek、sendDanmu 四種方法。

看下代碼,可以看到 creatVideoContext,傳入的參數叫video,就是剛才說布局文件裡定義的一個 id 等於 video。                                                            

可以發現視頻已經開始播了,划動一下列表,視頻跟著這個列表在走,第二個視頻顯示出來後,並沒有播放。


這是我自己發現的微信小程序裡 bug,點擊第二個視頻時不能自動播放,手動點控制條的時候有可能觸發播放,這是小程序系統的 bug。但有方法可以繞過:在原來的方法上加兩句話,就是設一個 timeout,也就是將這個事件延遲一段時間再出發,點擊事件結束之後 500 毫秒再去觸發視頻的播放。

微信官方推薦用自帶的 IDE 來做開發。但是我平時還會做其它平臺的開發,所以會比較傾向統一用 intellij,寫好代碼後只在微信小程序裡做調試。繞過 bug 後可以看到滑視頻隨著列表滾動可以自動播放了。這樣我們基本上完成第二個目標,在列表中播放視頻,而且在滾動列表時只有一個視頻在播放。

步驟四:將頁面分享給好友

在微信小程序官方文檔的最後,可以看到有一個關於 onShareAppMessage 的說明,意思是如果你在頁面裡定義了這個函數,這個函數叫 onShareAppMessage,右上角會出現分享按鈕。

可以看到,不定義這個函數時,點擊右上角會出現「當前頁面未設置分享」的提示。

接下來寫這個代碼,直接把官方文檔抄過來即可,要注意,設置頁面元素時,一定要在 page 後的括號中寫,也就是說,一定要在 page 頁面裡設置有關這個頁面的系統回調。保存後回到 IDE,點擊右上角,會出現分享按鈕,可以自定義分享標題與自定義分享描述。

看一下代碼也是這麼寫的:自定義標題、自定義描述、自定義 path。自定義 path 是最外層還有一個 APP.gaisen,裡面定義了所有的頁面地址,把頁面地址可以寫過來後我們今天的任務就完成了。

雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 機器人程序設計之如何正確入門ROS | 雷鋒網公開課
    Top博士自2009年第一次接觸到ROS後,便認識到其在機器人開發中的重要性,並不遺餘力在國內進行推廣。然而隨著ROS近年來火熱,在教學中也發現很多新夥伴對ROS的認識存在一些誤區,為了加快小夥伴們的學習速度,雷鋒網(公眾號:雷鋒網)本期公開課雷鋒網邀請Top和大家分享一點自己學習和使用的經驗和心得。
  • 科普:除了源碼下載,微信小程序還有哪些開發方式?
    製作一個微信小程序真的有那麼難?那要看你用的是什麼方式了。小程序的製作通常有四種方式,從難到易排列是這樣的:1.原始碼開發難度:★★★★★靈活性:★★★★★耗費時間:★★★★☆耗費資金:★最困難的一種,基本只適合資深碼農
  • 如何用雲計算模式,實現生物信息分析 | 雷鋒網公開課
    本文整理自華點雲技術總監於偉文在雷鋒網(公眾號:雷鋒網)硬創公開課上的演講,主題為如何用雲計算模式實現生物信息分析。於偉文,高級工程師,上海華點雲生物科技有限公司技術總監。是北京航空航天大學國家示範學科——「移動雲計算」專業的首批畢業生。擁有十餘年 IT 領域從業經驗,主要關注於臨床、生物、金融等領域。
  • 入門公開課 | 產品經理的宏觀能力、中觀套路、微觀體感是什麼? |...
    但據我們觀察,80%的人在入門產品的時候沒有清晰的學習規劃,往往都是學到哪算哪,撿到啥學啥。如果你明白產品經理的能力分為三個層級:宏觀能力、中觀套路、微觀體感,那麼你入門時的方向感和規劃性就會強許多。1.什麼是宏觀能力?假設你是二零一幾年的程維,你如何帶領滴滴走向出行領域的獨角獸?
  • 金融工程入門公開課+附贈學院獨家乾貨資料,2節課帶你進入新世界!
    原標題:金融工程入門公開課+附贈學院獨家乾貨資料,2節課帶你進入新世界! 近日,有一個名叫肯·格裡芬(Ken Griffin)的男人,在芝加哥富人區購買了西沃爾頓街9號公寓的35至38層公寓。
  • 神經認知學在機器人中的發展和應用(附PPT+視頻) | 雷鋒網公開課
    本期雷鋒網硬創公開課邀請到TIANBOT資深機器人研究工程師田博,為我們做主題為《神經認知學在機器人中的發展和應用》的分享。發表多篇機器人(IROS)和人工智慧頂級國際會議(AAAI)文章,開發移動機器人超過十種,包括足式與輪式。回國後進行移動服務式機器人創業,受邀在人工智慧大會、機器人核心器件計算法等大小會議上發表演講,創業項目獲得南京創贏未來金獎,創辦南京天之博特機器人科技有限公司,志在培養機器人技術與開發人才。參加央視財經頻道的創業英雄匯。
  • 科普:微信小程序二維碼生成的4種方法
    小程序已經滲透進我們日常生活中,無論是交通出行、生活服務、購物、點餐、閱讀……都可以通過小程序實現相關功能,提高便捷度。比如在點餐時,我們常常能看到商家在門店門口放置一個「掃碼點餐不排隊」的海報,這種時候,微信小程序二維碼就成為了連接線上、線下的重要工具。那麼小程序二維碼該怎麼生成呢?
  • 微信小程序怎麼開通客服功能?
    微信小程序在商家的線上經營、流量獲取中起著日益重要的作用,不過,若想好好利用小程序為自己賦能,只用來賣貨是不夠的,你還可以用它來和客戶及時溝通、解答難題。這就需要用到小程序客服功能。那麼如何添加小程序客服系統呢?下面就跟大家科普一下。
  • AI 從業者該如何選擇深度學習開源框架丨雷鋒網公開課
    (公眾號:雷鋒網)硬創公開課的分享,並由彭河森博士親自整理成文。因人而異,因項目而異。可能你是做圖像處理,也可能是自然語言處理,或是數量金融,根據你不同的需求,對平臺做出的選擇可能會不同。標準1:與現有編程平臺、技能整合的難易程度無論是學術研究還是工程開發,在上馬深度學習課題之前一般都已積累不少開發經驗和資源。可能你最喜歡的程式語言已經確立,或者你的數據已經以一定的形式儲存完畢,或者對模型的要求(如延遲等)也不一樣。
  • | 雷鋒網公開課
    如何在合理成本下打造一個最為強大、合適的 SIEM 系統,是許多安全人員頭疼的問題。雷鋒網有幸邀請到了擁有十年安全產品經驗的百度安全專家兜哥,為大家講解如何使用開源軟體搭建企業的SIEM系統。▼雷鋒網按:由於本次公開課偏向實操,涉及到許多的實際操作和代碼示例,限於篇幅就不一一展示,文章下方附本次公開課視頻,有興趣的讀者可以自行觀看,本文主要以展示思路為主。
  • 小程序:越獄未遂
    很多人說小程序未來可以取代 App 和網頁,但官方從來沒有這麼說過,看上去,是因為克制。但是,張小龍說,微信的字典裡沒有克制兩個字,如果你聽了他的四小時分享,會發現他的確不是克制,從一方面說是對底線的嚴守,另一方面,也可以說是對產品極強的控制欲。
  • 微信「小程序」上線 如何激活?
    2017年1月9日凌晨,微信小程序正式上線。用戶現在可以通過二維碼、搜索等方式在微信裡直接體驗開發者們開發的小程序,而無需額外下載安裝。國內網際網路巨頭騰訊公司於1月9日發布「小程序」,可以讓用戶無需下載和安裝便可在微信內互動使用各類程序服務。
  • 微信公開課Pro活動連結盜號之說不可信
    微信公開課PRO版這個連結放出來不久,就有人出來說這個連結是會盜號的,開始我們的朋友圈瘋狂的曬著自己的與微信的故事你與你的第一個微信好友還在聯繫嗎?當所有人都沉溺於其中的時候突然間蹦出這麼一條來說是這個連結會盜號然後朋友圈裡便開始恐慌但筆名深大汪峰的技術男已經用三招給你闢謠了。
  • 【Ardunio】開發入門教程【一】簡介+數據類型+開發工具
    你可以自己自己動手製作,也可以購買成品套裝;Arduino所使用到的軟體都可以免費下載. 硬體參考設計 (CAD 文件)也是遵循availableopen-source協議, 你可以非常自由地 根據你自己的要求去修改他們。Arduino可以使用開發完成的電子元件例如Switch或sensors或其他控制器、LED、步進馬達或其他輸出裝置。
  • 對話微信團隊:小程序裡,我們這樣幫商家「雲擺攤」
    |2020微信公開課全盤點)今年,微信正在小程序獲客、留存和商業化三方面發力。一個值得誇讚的進步是:不擅長「短視頻」的微信,正在努力嘗試直播,並且在今年初開始為商家提供直播插件。將近4個月的公測時間裡,不少商家已經開始嘗鮮,先用小程序實現了數位化轉型,後上直播插件在微信裡「支起了攤子」。
  • 提升小程序賺錢速度的幾個小方法,你get到了嗎?
    小程序也成為了各行各業在微信閉環獲客的優秀徵地滲透到了各行各業,是企業在微信閉環獲客的優秀陣地,小程序從推出到現在過去了3年的時間,入門的門檻已經非常的低了,有很多商戶會發現自己的程序上線之後用戶卻不如預期的數量多 ,許多個人或者小微企業也可以嘗試,但是卻發現自己的小程序用戶沒有達到預期的效果。那麼今天就整理幾個小程序曝光渠道,來給小程序引流。
  • 0基礎產品入門法,1小時對話8年大廠PM
    產品經理最基礎的技能:市場/競品/需求分析、產品規劃/交互/原型設計、產品文檔撰寫/項目管理等,也許這些你都可以自學,但是如何銜接,為何要這樣,你們真的懂嗎?!Jocelyn前小米AI高級產品經理、前新浪微博高級產品經理8年大廠經驗沉澱,從0到1,從前端到後臺,從百萬級到上億級產品經歷PC到移動網際網路以及現在的人工智慧
  • 微信小程序的紅利推廣在哪裡?TPshop開源小程序
    二、群眾號關聯和迷糊查找   小程序現在沒有線上長按辨認二維碼的功用,但現在已支撐迷糊查找,雖然短期內可能難以翻開線上流量的進口,但線上流量也仍是有的,相同公司主體的小程序可以與群眾號可以完結互跳。運營得好的群眾號也能給小程序帶來流量和用戶。
  • 關於二維碼微信小程序你所不知道內容
    微信小程序開發製作是有很多步驟,那不同步驟所涉及到內容點是不一樣。很多人在開發一個小程序之後,發現這個小程序並不能帶來預期效果,這就讓他們覺得微信小程序沒有用。其實想要開發個優秀小程序,需要了解很多內容。下面為大家分享下二維碼小程序的內容,希望大家能夠認真看完。
  • 小程序的共識、分歧、悖論與通解
    在熱度褪去後,這些概念中的一部分是真啞了火,比如新零售和私域流量,還有一部分卻是進入了「悶聲發財」的階段,比如小程序。今年微信公開課的邀請函上,主論壇位列第一的毫無疑問是視頻號,但列在第二的卻是小程序,排在微信支付和企業微信之前。這引起了奇偶派的注意,通過查閱,我們發現了一組有意思的數據。