欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS?項目嵌入Flutter?運行(最新推薦)

 更新時間:2023年03月29日 15:13:43   作者:iOS_Apple  
這篇文章主要介紹了iOS?項目嵌入Flutter?運行,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一  創(chuàng)建Flutter 模塊

命令行

flutter create --template module my_flutter

創(chuàng)建完成后,該模塊和普通的Flutter項目一直,可以通過Android Studio或VSCode打開、開發(fā)、運行;

  • 和之前項目不同的iOS和Android項目是一個隱藏文件,并且我們通常不會單獨打開它們再來運行;
  • 它們的作用是將Flutter Module進行編譯,之后繼承到現(xiàn)有的項目中
my_flutter/
├── .ios/
├── .android/
├── lib/
│   └── main.dart
├── test/
└── pubspec.yaml

二 嵌入到iOS 項目

主要是通過pod 進行設(shè)置,之后pod install

注意my_flutter 的路徑對不對

platform :ios, '12.0'
# 添加模塊所在路徑
flutter_application_path = '../my_flutter'
load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')
 
target 'FlutterHybridDemo' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!
  
  # 安裝Flutter模塊
  install_all_flutter_pods(flutter_application_path)
  
  # Pods for FlutterHybridDemo
end
post_install do |installer|
  flutter_post_install(installer) if defined?(flutter_post_install)
end

三  iOS 項目中調(diào)用

為了在既有的iOS應(yīng)用中展示Flutter頁面,需要啟動 Flutter Engine和 FlutterViewController

AppDelegate 中設(shè)置代碼

import UIKit
import FlutterPluginRegistrant
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
 
    // 1.創(chuàng)建一個FlutterEngine對象
    lazy var flutterEngine = FlutterEngine(name:"my flutter engine")
 
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        // 2 啟動
        flutterEngine.run()
        
        return true
    }

在ViewControlelr 設(shè)置的代碼

import UIKit
import Flutter
class ViewController: UIViewController {
 
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        
        let btn = UIButton(type: UIButton.ButtonType.custom)
        btn.setTitle("加載flutter", for: UIControl.State.normal)
        btn.frame = CGRect(x: 50, y: 50, width: 200, height: 50)
        btn.backgroundColor = UIColor.blue
        btn.addTarget(self, action: #selector(showFlutter), for: UIControl.Event.touchUpInside)
        view.addSubview(btn)
    }
    
    @objc func showFlutter(){
        
        let flutterEngine = (UIApplication.shared.delegate as! AppDelegate).flutterEngine
        
        let flutterController = FlutterViewController(engine:flutterEngine, nibName: nil, bundle: nil)
        
        present(flutterController, animated: true)
        
        
    }
 
}

顯示的結(jié)果  順利加載出flutter 的頁面

到此這篇關(guān)于iOS 項目嵌入Flutter 運行的文章就介紹到這了,更多相關(guān)iOS 項目嵌入Flutter內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論