跳到主要内容

Flutter與webview互調

轉載自:突然插播:Flutter與JS互調|season_zhu

所以要一鍋端了?

很順利的解決了iOS端,Swift與H5的交互問題,公司覺得你這光解決iOS的不行啊,最好是寫一個通用的WebView殼子,能滿足日常的iOS與Android雙端WebView載入H5調試。

這不是要一鍋端的節奏?

既然是雙端調試,那麼必然會想到使用跨平臺方案來寫這個殼子,基於技術背景,Flutter當仁不讓的成為了第一選擇,而選擇使用的Flutter中的WebView外掛程式就是webview_flutter!

webview_flutter 簡介

一個為Flutter提供WebView元件的外掛程式。,在iOS端是基於原生的WKWebView,而在Android則是基於系統的WebView。

從這段簡介可以看出,雖然這是一個Flutter外掛程式,但是實際上橋接的都是基於iOS與Android平臺系統層面的WebView元件。

這樣做的好處就是在每一端都做到使用原生,只要中間通信層邏輯一致並完好,那麼就可以展平了雙端WebView中H5與Flutter通信的能力。

總結

  • Flutter中的webview_flutter本質上還是調用了雙端的原生WebView元件,所以對應的一致性較好,如果瞭解原生與JS的互調,那麼Flutter與JS互調依葫蘆畫瓢即可。
  • Swift中的多個代理回調在Flutter中都通過Callback完成,這樣看起來緊湊,雖然可能在編碼中不易於看清楚,但是比較符合Flutter的聲明式程式設計風格,需要努力適應。

參考資料