它比微信小程序早出現(xiàn)半年纯续,卻不曾引爆技術(shù)圈

文/汪志成

淺談微信小程序與PWA

作為一個(gè)程序員随珠,你這兩天的朋友圈被微信小應(yīng)用刷屏了吧灭袁?想試了吧?沒(méi)拿到邀請(qǐng)吧窗看?沒(méi)關(guān)系茸歧,我來(lái)幫你!

當(dāng)然显沈,我沒(méi)法幫你拿到邀請(qǐng)碼 —— 因?yàn)槲乙矝](méi)有软瞎。不過(guò),別失望拉讯,我今天要跟大家談一項(xiàng)比微信小程序更宏觀的概念 —— Google提出的PWA涤浇。

PWA是什么?

PWA全稱是“Progressive Web Apps”魔慷,譯成中文就是漸進(jìn)式應(yīng)用只锭。這是Google在2015年6月15日提出的概念,參見(jiàn)Alex Russell寫的https://infrequently.org/2015/06/progressive-apps-escaping-tabs-without-losing-our-soul/院尔。

那么蜻展,什么是漸進(jìn)式應(yīng)用呢?

Alex寫道:

在昨天的晚餐上邀摆,我和Frances列舉出了新型應(yīng)用的幾個(gè)特征:

  • 響應(yīng)式:適應(yīng)任何形態(tài)因素
  • 不依賴網(wǎng)絡(luò):在Service Worker(H5中的新技術(shù)纵顾,appcache的升級(jí)版)的支持下能夠離線使用
  • 像本地應(yīng)用一樣交互:采用“殼+內(nèi)容”模式來(lái)實(shí)現(xiàn)類似本地應(yīng)用的瀏覽和交互體驗(yàn)
  • 保持最新:始終透明的升級(jí)到最新版,這要感謝Service Worker提供的升級(jí)機(jī)制
  • 安全:通過(guò)TLS(這是Service Worker所要求的)來(lái)防止通訊被窺探
  • 可發(fā)現(xiàn)的:具有像“應(yīng)用”一樣的唯一標(biāo)識(shí)栋盹,這要感謝W3C的Manifest文件格式施逾,它在“Service Worker”中注冊(cè)的scope能允許搜索引擎發(fā)現(xiàn)這些應(yīng)用。
  • 可“再接觸”的:可以訪問(wèn)操作系統(tǒng)的“可再接觸”界面贞盯,比如推送通知
  • 可安裝的:通過(guò)瀏覽器提供的提示音念,可以把它加入主屏,允許用戶把覺(jué)得有用的應(yīng)用“保留”下來(lái)躏敢,而不用到應(yīng)用商店去安裝闷愤,那樣太麻煩了。
  • 可鏈接的:這意味著它們是零阻力件余、零安裝讥脐,并且易于共享的。URL更能發(fā)揮社交傳播的能量啼器。

PWA怎么用旬渠?

一個(gè)PWA的使用過(guò)程大概是這樣的:

這貨開始就是一個(gè)普通網(wǎng)頁(yè):

01_PWA_start.png

然后,這是什么鬼端壳?

02_PWA_prompt.png

這網(wǎng)站看著還不錯(cuò)告丢,那就接受吧!

03_PWA_accept.png

它出現(xiàn)在手機(jī)的首屏了损谦,以后隨叫隨到岖免!

04_PWA_homescreen.png

點(diǎn)了就能像一個(gè)本地應(yīng)用那樣啟動(dòng)它:

05_PWA_launched.png

看岳颇,啟動(dòng)完也跟一個(gè)本地應(yīng)用沒(méi)有區(qū)別:

06_PWA_launcher.png

PWA的好處

Web應(yīng)用(網(wǎng)頁(yè))和本地應(yīng)用(App)各有優(yōu)勢(shì),比如:

  • Web應(yīng)用不需要安裝颅湘,因此減少了用戶流失(想想你要安裝一個(gè)應(yīng)用時(shí)有多么猶豫吧)
  • Web應(yīng)用方便傳播话侧,你只要在微信或者QQ里發(fā)一個(gè)網(wǎng)址就有很多人會(huì)去看(比如本文 _
  • Web應(yīng)用的收藏、前進(jìn)闯参、后退這些功能非常有用
  • 本地應(yīng)用的留存度比較高瞻鹏。你看過(guò)一個(gè)網(wǎng)址后再回來(lái)的概率大約是本地應(yīng)用的1/3。
  • 本地應(yīng)用可以推送通知鹿寨,而Web應(yīng)用只有在瀏覽器打開狀態(tài)下才行
  • 本地應(yīng)用可以離線使用新博,只要做適當(dāng)?shù)脑O(shè)計(jì)就可以不受網(wǎng)絡(luò)環(huán)境的影響
  • 本地應(yīng)用可以訪問(wèn)更加豐富的功能,比如更大的本地存儲(chǔ)空間

那么脚草,它們能否合二為一呢叭披?這就是PWA所做的事!

通過(guò)前面提到的這些步驟玩讳,PWA可以讓用戶同時(shí)獲得這兩種好處涩蜘。這無(wú)論對(duì)于用戶本身還是對(duì)于應(yīng)用的開發(fā)者都非常有意義。

如何實(shí)現(xiàn)PWA熏纯?

其實(shí)從Alex的描述中就可以看到同诫,在技術(shù)上我們離實(shí)現(xiàn)PWA并不遠(yuǎn):

Web應(yīng)用開發(fā)技術(shù)

已經(jīng)具備。

特別是得益于Angular等SPA應(yīng)用的普及樟澜,SPA不但響應(yīng)更加快速误窖,更加接近原生應(yīng)用的操作體驗(yàn),而且讓我們可以完全不依賴服務(wù)器工作了秩贰。

離線存儲(chǔ)技術(shù)

有人可能還記得一項(xiàng)叫AppCache的技術(shù)霹俺,它已經(jīng)廢棄了,現(xiàn)在由Service Worker所取代毒费。這是一個(gè)更強(qiáng)大的AppCache丙唧,它不僅能存儲(chǔ)HTML/JS等靜態(tài)文件,而且還讓你能夠在客戶設(shè)備上運(yùn)行起一個(gè)仿真的超輕量級(jí)Web服務(wù)器觅玻,你在里面已經(jīng)幾乎可以寫Node程序了想际!

這是新的H5標(biāo)準(zhǔn)的一部分,而不是PWA特有的溪厘。

推送通知

H5標(biāo)準(zhǔn)中已經(jīng)有了用來(lái)推送通知的API(用過(guò)Web Gmail的話應(yīng)該見(jiàn)過(guò))胡本,現(xiàn)在只要把它和操作系統(tǒng)的API對(duì)接就行了。當(dāng)然畸悬,這最好由操作系統(tǒng)提供支持侧甫,這已經(jīng)實(shí)現(xiàn)了,那就是新推出的Android 7。

App殼程序

這個(gè)殼程序其實(shí)自己來(lái)實(shí)現(xiàn)也沒(méi)問(wèn)題披粟,技術(shù)上沒(méi)啥難度彩扔,不過(guò)不用重復(fù)造輪子了,因?yàn)楣俜揭呀?jīng)出了一個(gè)僻爽,參見(jiàn)https://github.com/GoogleChrome/application-shell。如果用Angular 2就更幸福了贾惦,因?yàn)锳ngular 2還制作了一個(gè)Angular 2專用的殼:https://github.com/angular/mobile-toolkit胸梆。不過(guò),它現(xiàn)在還處于未發(fā)布狀態(tài)须板,早鳥可以開始提前嘗試了碰镜。

微信小程序與PWA

雖然微信小程序概念的提出比PWA晚了半年,不過(guò)相信張小龍這個(gè)級(jí)別的產(chǎn)品經(jīng)理不會(huì)是簡(jiǎn)單的抄襲PWA概念习瑰,而是會(huì)發(fā)揮微信生態(tài)圈的優(yōu)勢(shì)绪颖,提供更廣闊的應(yīng)用場(chǎng)景√鹧伲或許我們應(yīng)該把微信小程序看做PWA的一種優(yōu)質(zhì)實(shí)現(xiàn)柠横。

假如你沒(méi)有拿到微信小程序的邀請(qǐng)碼,不妨像我一樣课兄,先從研究PWA開始吧牍氛。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市烟阐,隨后出現(xiàn)的幾起案子搬俊,更是在濱河造成了極大的恐慌,老刑警劉巖蜒茄,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件唉擂,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡檀葛,警方通過(guò)查閱死者的電腦和手機(jī)玩祟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)屿聋,“玉大人卵凑,你說(shuō)我怎么就攤上這事∈る” “怎么了勺卢?”我有些...
    開封第一講書人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)象对。 經(jīng)常有香客問(wèn)我黑忱,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任甫煞,我火速辦了婚禮菇曲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘抚吠。我一直安慰自己常潮,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開白布楷力。 她就那樣靜靜地躺著喊式,像睡著了一般。 火紅的嫁衣襯著肌膚如雪萧朝。 梳的紋絲不亂的頭發(fā)上岔留,一...
    開封第一講書人閱讀 51,198評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音检柬,去河邊找鬼献联。 笑死,一個(gè)胖子當(dāng)著我的面吹牛何址,可吹牛的內(nèi)容都是我干的里逆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼用爪,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼运悲!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起项钮,我...
    開封第一講書人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤班眯,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后烁巫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體署隘,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年亚隙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了磁餐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡阿弃,死狀恐怖诊霹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情渣淳,我是刑警寧澤脾还,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站入愧,受9級(jí)特大地震影響鄙漏,放射性物質(zhì)發(fā)生泄漏嗤谚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一怔蚌、第九天 我趴在偏房一處隱蔽的房頂上張望巩步。 院中可真熱鬧,春花似錦桦踊、人聲如沸椅野。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)竟闪。三九已至,卻和暖如春芒炼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背术徊。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工本刽, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人赠涮。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓子寓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親笋除。 傳聞我的和親對(duì)象是個(gè)殘疾皇子斜友,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

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