Flutter插件iOS端開發教程

學習flutter沒多久,由於新的需求涉及到原生,因此須要製做插件,學習的過程當中詳細記錄一下,本篇博客主要介紹的是iOS端詳細步驟,不涉及Androidandroid

原理

我的理解,這種與原生通訊的設計模式都差很少,flutter這邊的叫Method Channel。跟以前搞的Cordova很像,都有一個plugin類來處理與原生的通訊。 深刻理解推薦閱讀Flutter與iOS通訊原理ios

步驟

建立插件工程

  1. Android Studio建立
    AS建立插件工程
    點擊Next,修改Project名字繼續Next,
    建立插件設置
    紅框部分選擇是否支持SwiftKotlin
  2. 終端建立
flutter create --org com.example --template=plugin 插件名字
複製代碼

若是須要支持Swift或者Kotlinswift

flutter create --template=plugin -i swift -a kotlin 插件名字

複製代碼

到這裏,插件工程就已經建立好了。設計模式

目錄結構

插件工程目錄
android:安卓插件代碼添加的地方 example:插件示例工程 ios:iOS原生代碼添加的地方 lib:插件的Dart代碼

flutter與原生通訊

Dart調用原生插件的地方: bash

Dart調用原生
原生接收調用的插件類:
原生接收通訊
經過method來區分不通的方法調用,傳參在arguments中
FlutterMethodCall

編寫iOS原生代碼

首先須要在example工程下,執行fLutter build ios,主要是須要pod install,生成xxx.workspace. 而後以下圖所示打開Xcode, post

使用Xcode打開工程
使用 example目錄下的 ios目錄打開也同樣。 Xcode工程打開後,在以下圖所示位置添加編寫原生代碼。
添加iOS代碼的位置

添加文件或者本地庫 學習

添加文件
同時在 podsepc文件裏面加上:

s.source_files = 'Classes/**/*'
  s.public_header_files = 'Classes/**/*.h'
  # 第三方.a文件
  s.vendored_libraries = 'Classes/**/*.a'
  # 第三方framework
  s.vendored_frameworks = 'Classes/**/*.framework'
  s.dependency 'Flutter'
複製代碼

podspec文件
更加詳細的 podspec文件語法,請戳 podspec文件語法

遇到的問題

運行example工程師,一直報library not found,這個問題還不是一直有,有時候報錯有時候不報錯,尤爲Xcode能運行打開Android Studio運行就顯示找不到庫文件。搞了很久,請教了不少人,最後發現是Android Studio不能識別大寫Lib開頭的.a文件,必定要小寫。ui

相關文章
相關標籤/搜索