Flutter 生成執行小程式的混合App開發實踐
目前的疑惑
微信小程式發展的越來越快,目前小程式甚至取代了大部分 App 的生態位,公司的坑位不增反降,只能讓原生應用開發兼顧或換崗進行小程式的開發。
以我的實際情況來講,公司應用採用的 Flutter 框架,同樣的功能不可避免的就會存在 Flutter 應用開發和微信小程式開發兼顧的情況,這種重複造輪子的工作非常低效。
為什麼會存在這種情況?
隨著 2019 年5月 Google I/O 上 Flutter 1.5.4 的釋出,宣示著 Flutter 真正開始進入全終端時代,意味著只需要寫一份程式碼,不需要任何額外的修正改,就可以執行在 iOS、Android、Web、PC 上。Flutter 正在革命性的改變移動開發的生態系統,從面向各個終端的開發,轉向面向框架開發,不僅會改變開發者的開發方式,也有越來越多的公司開始關注使用 Flutter。
Flutter 作為一個跨平臺的框架,其開發技術棧融合了 Native 和前端的技術,不僅涉及到了 Native(Android、iOS )的開發知識,又吸取了很多前端(例如 React)的技術理念和框架,並且在此基礎上又有提升,形成 Flutter 自己獨特的技術思維。
但目前來講,Flutter 並不支援小程式,Flutter for Web 雖然最後也會生成 JS 程式碼,但是 Flutter 生成的 JS 和 CSS 都是不能修改的。而在 Flutter 中也沒辦法透過 Dart 直接呼叫小程式的介面,所以現階段用 Flutter 開發小程式不是太好的選擇。
一些解決思路的產生
但是公司和業務也不得不向著網際網路巨頭的流量低頭,同時小程式的逐漸風靡,也使得使用者下載 App 的習慣產生變化,不管購物、訂餐還是辦事都會首先查詢“開啟即用,即用即走”的小程式可以使用,省去了下載 App 的繁瑣流程。
當然也知道很多開發者對於小程式是有非常多意見的,App 也不會說死就死,畢竟 App 相對於小程式來講,還是有很多優勢。所以 App 和小程式開發都共存的情況下,如何解決效率問題?
能否讓過往開發的小程式直接執行在 Flutter 開發的應用中呢?同樣一個功能業務僅需一次小程式開發,即可實現在除了微信端的其它 App 中也執行起來。
在 Google 找相關的解決方案和資料的時候,發現國外幾乎沒有這種方案,國內倒是有廠商在做這塊,想想也確實符合情理。基於公司 Flutter 框架的基礎現實情況下,名為 FinClip 小程式容器技術的產品是能夠支援除原生 iOS、Android 之外的 Flutter 和 React Native ,於是大概測試了下這個產品。
實操上手過程
原理其實挺簡單的,FinClip 提供了小程式 SDK 給 Flutter 應用進行整合,這樣以來 App 即擁有了一套可執行小程式業務程式碼的宿主環境。
1、獲取憑據
整合 SDK 需要在
FinClip平臺
中建立應用並繫結小程式,獲得每個應用專屬的 SDK KEY 及 SDK SECRET ,隨後可以在整合 SDK 時填寫對應的引數。開啟小程式時 SDK 會自動初始化,並校驗 SDK KEY,SDK SECRET 與BundleID (Application ID) 是否正確。
2、整合外掛
在專案 pubspec.yaml 檔案中新增依賴。
如果電腦是 mac M1 晶片,還需要在 iOS 資料夾的 Podfile 檔案增加以下3行程式碼
示例:
3、Flutter API
在整合後,使用 SDK 提供的 API 之前必須要初始化 SDK 。下面我羅列官方的一些必要的 API ,更具體的也可以查閱
官方文件。
1)初始化 sdk 介面
2)開啟小程式
3)獲取當前正在使用的小程式資訊當前小程式資訊包括的欄位有appId,name,icon,description,version,thumbnail
4)關閉當前開啟的所有小程式
4、官方示例
官方給了一個例項,我也直接放上來,大家可以參照下。
最後的話
目前我是基於我個人的實際情況而找到的方案,如果大家有更好的方案也歡迎留言討論交流。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70021577/viewspace-2934365/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Flutter、iOS混合開發實踐FlutteriOS
- Flutter、Android混合開發實踐FlutterAndroid
- Flutter 1.12混合開發實踐Flutter
- 如何進行Flutter混合開發Flutter
- 混合開發實戰:App里拉起一個小程式(IOS篇)APPiOS
- Flutter混合App實戰FlutterAPP
- 【小程式】微信小程式開發實踐微信小程式
- Flutter混合工程改造實踐Flutter
- Flutter - 混合開發Flutter
- Flutter混合開發Flutter
- Flutter與Native混合開發-FlutterBoost整合應用和開發實踐(iOS)FlutteriOS
- Flutter混合開發-iOSFlutteriOS
- Flutter原生混合開發Flutter
- Android Flutter 混合開發高仿大廠AppAndroidFlutterAPP
- flutter 混合開發 (android 實際操作)FlutterAndroid
- 小程式開發實踐總結
- Flutter實戰3 — PC上執行Flutter APPFlutterAPP
- Flutter實戰3 --- PC上執行Flutter APPFlutterAPP
- Now直播iOS Flutter混合工程實踐iOSFlutter
- 微店的Flutter混合棧管理技術實踐Flutter
- Flutter & Native 混合開發Flutter
- Flutter混合開發—iOS篇FlutteriOS
- Flutter混合工程開發探究Flutter
- 原生App專案整合flutter混合開發詳細指南APPFlutter
- 小程式接入NPM包開發實踐NPM
- 微信小程式模組化開發實踐微信小程式
- Flutter混合開發的路由棧管理Flutter路由
- iOS原生混合RN開發最佳實踐iOS
- 騰訊線上教育的小程式雲開發實踐
- 使用 Mpvue 開發微信小程式的最佳實踐Vue微信小程式
- Flutter 和iOS 混合開發(一)FlutteriOS
- Flutter混合開發之FlutterFragment使用FlutterFragment
- Flutter Boost 混合開發框架初探Flutter框架
- Flutter混合開發—Android篇FlutterAndroid
- 實踐分享:小程式自定義元件開發元件
- 微信小程式開發入門與實踐微信小程式
- iOS與Flutter混合開發的姿勢iOSFlutter
- Flutter 混合開發實戰問題記錄(四)編譯執行時問題的一些總結Flutter編譯