前言:
最近初步了解了一下微信小應用,APP端的同事也非常感興趣,於是在公司內部做了一個小小的分享,分享的過程中有很多討論內容,大家也是非常感興趣和有自己的看法,當時“混亂”的場面好幾次我都沒有把持住。以下內容部分來自於內部分享所用ppt。文章對微信小應用的使用做了展示性介紹,並簡單介紹了代碼結構、后端交互方法。最后提出一些總結和疑問。文章內容比較主觀,有不對的地方歡迎大家指出糾正。
前段時間微信小應用公開內測,在朋友圈火了一把,各種闡述瘋狂蔓延,干掉APP之類的說法比較突出,確實達到了比較好的推廣效果。作為吃瓜的群眾,還是得親自看看才能有所領悟。運氣很好,leader葉分配了小應用調研任務給我,拿到內側賬號,高興的開始了探索。
百聞不如一見,先看看開發工具
①項目選擇界面
②編輯界面
③預覽調試界面
開發者工具使用簡單,調試方便,之前我使用的時候還需要自己手動點擊編譯,才會更新調試的預覽,更新到0.10.102800版本就已經實現保存自動編譯了。
④開發工具提供代碼自動補全,提供常用快捷鍵:
基本代碼結構
①如下所示:
②配置:
配置主要用來設置全局的窗口樣式,底部導航,包含的頁面,網絡超時時間等;也可以設置單個頁面的配置,但是只能設置窗口樣式。
如下的代碼,pages,window,tabBar都是自定義的屬性,小應用會根據這個配置注冊頁面,定義window樣式,添加底部導航。
③邏輯:
在根目錄下的app.js是一個全局的入口,app()方法會初始化整個應用,下面的代碼示例在初始化的時候獲取了緩存中的日志和登錄的用戶信息。
每個頁面也有自己的page.js,通過Page()方法來注冊一個頁面,在頁面初始化時候會執行。
④視圖:
wxml,是一個xml和html的混合產物,有一些自定義的屬性,總的來看,非常類似於angularJs的自定義指令。
⑤樣式:
- 實際就是css,不支持類似less的語法,是比較原生的css,也許以后是會支持less之類語法的;
- 可以通過@import導入其他wxss樣式;
- 支持rem,一般我們使用rem會除以一個基數比如:640/40rem,在wxss里面直接用微信的rpx單位,640rpx,等同於前面的640/40rem。
前后端交互
- 小應用是一個前端的開發項目,如果要想和后端交互,必須在公眾平台為小應用配置特定的https域名。
- 登錄微信公眾平台后台,為某個小應用綁定一個https的域名,小應用就可以通過微信封裝的request方法,調用這個域名下的接口。下面是一個調用示例:
- 預覽結果
程序員的角度看
它更像是一個h5的開發框架提供了許多與原生APP交互的橋接方法,運行在APP的webview里。換句話說,就是微信開發的h5前端框架,可以調用微信APP定義好的橋接方法,運行在微信APP的定制webview中。
當然也有底部導航、頭部導航和部分彈出層是native實現的,主要的內容幾乎都是運行在webview里面(直播中討論過小應用最終解析后是webview還是native,后來通過驗證確實是webview)。
提問:
可以試想小應用有什么優勢 ,這種優勢影響着它未來的發展
優勢:
如下圖,開發和傳播優勢還是挺明顯的,對於未來的小企業和個人開發者,它都是一個很好的機會,小規模試錯的低成本會讓它迅速風靡起來,同樣微信也會更加嚴格的監管這些小應用。因為微信的一些特定的屬性,我覺得微信做這種類似應用商店的事情,感覺還是很適合。它的優勢可能還有很多,這些都是需要我們自己去思考的。
提問:
可以試想小應用有什么劣勢 ,萬事有好有壞,總有一些不利於它的方面和場景,這種劣勢也會影響它自身的發展。
劣勢:
如下圖,我覺得入門還是一個成本,雖然成本並不會很大;約束這個是人人都認可的,最終還是按照微信定的規矩辦事,但是從古至今對一個事情做約束就是很難划分界限的,你很可能有明顯對立性,總之未來的政策會打擊一部分用戶,也會助長一部分用戶;入口單一是說它也許真的只能在微信里運行,每一個企業或者開發者都會為這個單一的入口提供技術和產品的支持,以后前端開發者的簡歷里,就會多增加一條熟悉微信小應用開發。當然還有很多可能的劣勢和它不能觸及的地方,都留給大家腦洞吧。
提問:
優勢和劣勢都思考了一遍了,那么它到底適合什么樣的應用場景呢?其實這個點的腦洞可以很大,未來是留給富有創造力的開發者和企業的,任何一個搶占先機的企業或者開發者都能引領它的潮流,我相信就算是微信團隊本身也不能預估未來開發者們會實現出什么他們意想不到的產品或者趨勢。
疑問:
我想大家看完這么多,始終還是多少有點疑問,充滿各種未知。下面三點是我的一些疑問。特別https這個事情,相信國內的站點應該要積極的開始響應了吧!
結語:
未知和疑問有太多了,本文也只是拋磚引玉,大家可以把自己看法寫在下方的評論里。也許這(小應用)又是一個機會點,也許又是一個曇花一現。那么大家把握機會,拭目以待吧,該闖一闖的,可以一闖。
最后附上一個直播,掃碼觀看,目前大家看到的是回放,時長為31分鍾。是同事用我們自己產品錄制的,不是很正式,講得也不是非常流暢(普通話和英文都不標准),第一次做這種內部分享,還望大家海涵。
這次分享比較free,過程中也有幾次激烈的討論,大家都很熱情,感謝公司同事對這次分享的支持(特別是APP組和測試組的積極參與)。