微信小程序web-view的簡單思考和實踐


微信小程序的組件web-view推出有一段時間了,這個組件的推出可以說是微信小程序開發的一個重要事件,讓微信小程序不會只束縛在微信圈子里了,打開了一個口子,這個口子或許還比較小,但未來有無限可能。

簡單思考

1.通過web-view嵌入網頁功能開放,給微信小程序的發展帶來無限的可能,有好,也有壞,但利大於弊。好處在於讓微信的開放性更強,無論將來混合模式和還是純H5都有更多的機會在微信這個大舞台有表演機會。壞處可能就是也打開了漏洞之門,會有更多魚龍混雜情況出現,這對微信的生態圈是個挑戰。

2.這個口子的打開,再關上的可能性就不大了,而且只能越大越開,按照微信的節奏,微信應該有足夠把握才會開放這個功能,一切都在微信的掌控當中。

3.大量基於h5的網站或應用都會被“小程序化”,微信這個“大”瀏覽器成為移動互聯網海量流量的入口。微信搜索會不會成為移動搜索的絕對第一的搜索?

4.對前端工程師這個職業帶來巨大的影響,降低了開發小程序的成本,讓前端工程師更關注網頁的架構,減小微信小程序的總體開發壓力。

5.讓熱部署、熱更新更為簡單,原來調整小程序風格和布局需要重新審核和發布,這個周期有些長。有了web-view后,基於它開發的頁面,可以隨時改變外觀、布局、數據。

簡單實踐

1.web-view里內嵌的域名域名在小程序管理后台設置業務域名,注意是業務域名,不是服務器域名。另外個人小程序目前是沒有這個設置,因此也就無法使用這個功能。

2.一個頁面(wml)只能放置一個web-view,且會覆蓋其他的組件鋪滿屏幕,這時候你就當微信小程序是個瀏覽器好了。

3.web-view打開的頁面必須是支持https的。

4。目前支持的jssdk接口還比較少,只支持“圖像接口”,“音頻接口”,“智能接口”,“設備信息”,“地理位置”,“搖一搖周邊”,“微信掃一掃”,“微信卡券”,“長按識別”,比如獲取用戶信息,微信支付之類都不行,我猜以后會慢慢放開,逐步達到微信公眾號的開放程度。

5.支持iframe ,最開始還不需要域名白名單(業務域名),后來把這個漏洞給補上了,不給人濫用的口子了。如果你頁面上有google adsense可以要注意了,如果使用的蘋果版微信,用web-veiw打開含有google adsense就會報錯(有的安卓偶爾也會報錯,原因不明),因為google adsense會虛擬一個iframe出來,google的域名自然不會在你的業務域名里,就會報錯。

6.如果你的網站做了302跳轉,跳轉的域名也要設置在業務域名里,別想着雞賊,能躲過這個配置。

7.通過內嵌網頁的功能可以實現站內鏈接的跳轉,當然不是小程序頁面的跳轉,而是在小程序里打開網頁,雖然感覺上有些別扭,不過總算彌補了無法跳轉的麻煩,對資訊類的小程序是很好的功能。

8.通過在onload里的options.url 參數可以解決分享web-view頁面加載的問題,不過需要對options.url 通過decodeURIComponent進行解碼,因為在分享轉發的時候,微信小程序對url的特殊字符進行了十六進制編碼,因此需要通過decodeURIComponent來解碼,小程序的web-view頁面才能正常加載。

9.web-veiw頁面有時候無法觸發onShareAppMessage方法,原因不明。如果有非web-view的頁面和web-view同時存在的小程序,如果是非web-view的頁面跳轉到web-view頁面,在轉發web-view頁面的時候無法觸發onShareAppMessage方法。如果有非web-view的頁面和web-view同時存在的小程序,如果是非web-view的頁面跳轉到web-view頁面,在轉發web-view頁面的時候無法觸發onShareAppMessage方法。

10.web-veiw頁面 無法使用“打開調試”功能,如果需要看調試,需要返回上一個不使用web-view的頁面查看。

11.web-view 嵌入的網頁里如果有白名單以外的域名鏈接,點擊后會報錯。

12.web-view不支持微信支付,但web-view內嵌的頁面使用了公眾號授權的微信支付,是可以在內嵌的頁面使用微信支付的。換句話說,如果如果用web-view內嵌公眾號的h5頁面,利用JSSDK是可以使用微信支付的。

 

----------------------------------------------------------------------------

歡迎關注我的網站和微信公眾號,文章會在我的網站和微信公眾號上同步發布。

本文首發鏈接:https://www.watch-life.net/wechat/web-view.html

我的網站:守望軒

微信公眾號名稱:守望軒

微信公眾號:iwatchlife

你也可以掃描或長按以下二維碼 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM