Flutter开发之——iOS原生项目导入Flutter

122 篇文章 45 订阅
订阅专栏

一 概述

  • iOS开发环境介绍
  • 创建iOS原生项目
  • 创建Flutter module
  • 将Flutter嵌入到iOS应用程序中
  • 打开混合后的项目空间(MyApp.xcworkspace)
  • 原生页面跳转Flutter

二 iOS开发环境介绍

  • Xcode:12.5.1
  • CocoaPod:1.10.1(pod --version)
  • Flutter:2.2.3
  • Dart:2.13.4

三 创建iOS原生项目

3.1 说明

创建IOS2Flutter文件夹,稍后将iOS和flutter项目都放在此文件夹下

3.2 创建IOS项目

  • 依次点击:File——>Project——>App
  • 设置对应的项目名称,机构id和编程语言
  • 选择文件的创建位置

四 创建Flutter module

  • 进入到IOS2Flutter文件夹(iOS项目文件夹),并在终端中打开

  • 执行如下指令创建Flutter module

    flutter create --template module my_flutter
    

  • 执行后原生iOS和Flutter项目的目录结构


    说明:

    1-.ios 是隐藏目录,可以单独运行Flutter module,测试此模块的功能
    2-iOS代码添加到现有应用程序的项目或插件中,而不是添加到模块的.ios /目录中
    

五 将Flutter嵌入到iOS应用程序中

5.1 嵌入方式说明

将Flutter嵌入到IOS应用程序中,使用:使用CocoaPods和已安装的Flutter SDK

5.2 创建IOS端Podfile文件

  • 终端进入到iOS项目路径下

    cd MyApp/
    
  • 执行如下指令,生成Podfile文件

    pod init
    
  • 默认创建的Podfile文件内容如下

    # Uncomment the next line to define a global platform for your project
    # platform :ios, '9.0'
    
    target 'MyApp' do
      # Comment the next line if you don't want to use dynamic frameworks
      use_frameworks!
    
      # Pods for MyApp
    
      target 'MyAppTests' do
        inherit! :search_paths
        # Pods for testing
      end
    
      target 'MyAppUITests' do
        # Pods for testing
      end
    
    end
    
  • 修改Podfile文件的内容(导入flutter模块)

    # Uncomment the next line to define a global platform for your project
    platform :ios, '9.0'
    flutter_application_path = '../my_flutter'
    load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')
    
    target 'MyApp' do
      # Comment the next line if you don't want to use dynamic frameworks
      use_frameworks!
      install_all_flutter_pods(flutter_application_path)
    
      # Pods for MyApp
    
      target 'MyAppTests' do
        inherit! :search_paths
        install_all_flutter_pods(flutter_application_path)
        # Pods for testing
      end
    
      target 'MyAppUITests' do
        install_all_flutter_pods(flutter_application_path)
        # Pods for testing
      end
    
    end
    

    说明:CocoaPods 相关请 参考官网

    1-platform:ios版本9.0
    2-flutter_application_path = '../my_flutter':flutter模块的路径
    
  • 执行pod install命令

六 打开混合后的项目空间(MyApp.xcworkspace)

  • 关闭Xcode,找到Ios2Flutter/MyApp/MyApp.xcworkspace,用xcod打开

  • 打开后的项目包含iOS原生项目(MyApp)和Flutter依赖Pods

  • ⌘B 或者Product—>Build 编译项目,编译成功后Flutter已成功导入,可以在iOS中正常使用

七 原生页面跳转Flutter

7.1 IOS跳转Flutter界面

在Main.storyboard上添加一个按钮IOS跳转Flutter

7.2 ViewController中跳转Flutter方法

import UIKit
import Flutter

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }
    @IBAction func jumpFlutter(_ sender: Any)
    {
         let flutterViewController = FlutterViewController.init()
         present(flutterViewController, animated: true, completion: nil)
    }  
}

7.3 效果图

2024年Android最全Flutter开发之——iOS原生项目导入Flutter,拼多多hr面试
2401_84545884的博客
05-04 703
感觉现在好多人都在说什么安卓快凉了,工作越来越难找了。又是说什么程序员中年危机啥的,为啥我这年近30的老农根本没有这种感觉,反倒觉得那些贩卖焦虑的都是瞎j8扯谈。当然,职业危机意识确实是要有的,但根本没到那种草木皆兵的地步好吗?Android凉了都是弱者的借口和说辞。虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。
Flutter调用Android和iOS原生代码的方法示例
01-20
前言 本文主要给大家介绍了关于Flutter调用Android和iOS原生代码的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 分3个大步骤: 1.在flutter中调用原生方法 2.在Android中实现被调用的方法 3.在iOS中实现被调用的方法 在flutter中调用原生方法 场景,这里你希望调用原生方法告诉你一个bool值,这个值的意义你可以随意定,这里表示的意义是是否是中国用户。 你可以在flutter中设计好要调用的方法名称,这里就叫 isChinese 请注意: 在flutter中要调用原生代码需要通过通道传递消息,在flutter端就是Me
iOS原生集成Flutter的实现
weixin_37918502的博客
05-16 947
虽然现在Flutter已经支持和原生混合开发,但我们有理由相信这并不是Google推出Flutter的目的,它的主要目的还是想通过Flutter实现一个App。但现在国内的情况是很多公司还是在用原生写App,只是某些功能可能会调用Flutter。那么在我们原生项目中如果想要集成Flutter,那么该怎么实现呢? 笔者是做iOS的,所以现在就结合着iOS来谈一谈,怎样在iOS项目中集成Flutter。首先我们需要通过终端命令行执行命令 flutter create --template module + 项
iOS原生嵌入Flutter
最新发布
yes16ws的专栏
06-28 959
我们先创建NativeDemo ios工程然后,导入cocopad通过配置框架。
android ios 混合编程,Flutter 混合开发(集成到原生 iOS 项目)
weixin_29199873的博客
05-27 433
对于 Flutter 的业务应用,我们更希望它可以集成到已有的项目中,这篇详细的介绍下如何将 Flutter 集成到 iOS 项目工程中,对于后续的通信、交互、管理等内容会在后面的篇章中介绍。创建 Flutter 模块创建 iOS 工程项目,命名为 FlutterMixDemo ,当然你也可以用已有的工程来集成。注意1:将我们项目 BitCode 选项设置为 NO , Flutter 目前还不支持...
Flutter 导入项目问题
qq_28641023的博客
05-14 207
1、Scaffold.resizeToAvoidBottomPadding(找不到) flutter2,已经删除不推荐使用的Scaffold.resizeToAvoidBottomPadding 改为:resizeToAvoidBottomInset 2、inheritFromWidgetOfExactType(找不到) context.inheritFromWidgetOfExactType(_ChewieControllerProvider) as _ChewieControllerP
Flutter开发之——IOSView,瞬间高大上了
m0_66264588的博客
01-19 912
void main() { runApp(PlatformViewDemo()); } class PlatformViewDemo extends StatelessWidget { @override Widget build(BuildContext context) { Widget? platformView() { if (defaultTargetPlatform == TargetPlatform.android) { return AndroidView( viewType: ‘plugi
Flutter开发之——IOSView,安卓开发自学教程
m0_64319333的博客
11-19 882
import Foundation import Flutter class MyFlutterViewFactory: NSObject,FlutterPlatformViewFactory { var messenger:FlutterBinaryMessenger init(messenger:FlutterBinaryMessenger) { self.messenger = messenger super.init() } func create(withFrame frame: CGRect,
android studio引入新的项目,Flutter项目导入(Android Studio)
weixin_39633891的博客
05-27 1578
一、导入Flutter项目因为AndroidStudio只支持新建Flutter项目,并没有提供直接导入一个Flutter项目的入口,我们第一步就以导入常规Android项目的方式导入就可以,File -> Open -> 需要导入项目,如果在之前正确的配置了AndroidStudio的Flutter环境,就能够正常的运行Flutter项目了。不过可以运行的项目的工程目录是这样的导入...
如何导入和使用Flutter的资源文件?
nicolelili1的专栏
05-26 3517
1、 Flutter资源文件里有常用的图片以及字体文件,最常用的就是图片了。 2、 在pubspec.yaml文件中的assets节点下配置资源的路径,包括缩略符 3、创建一个文件夹,并导入图片 4、 配置图片资源 5、 创建res_page.dart文件 6、 使用图片 7、 运行结果:图片正确加载 8、 import 'package...
flutter: flutter导入项目报错
qq_36413371的博客
02-05 606
启动报错 报错一: target of uri doesn't exist 保证pusbec.yaml文件内的插件版本或路径存在 dependencies: flutter: sdk: flutter fluro: "^1.7.8" 然后终端执行 flutter packages get就可以了 报错二: Exception in thread "main" java.lang.RuntimeException: Could no 手机用加速器下载,放在这个路径 f
iOS配置Flutter工程-For AndroidDev
tangfuling1991的博客
08-31 869
iOS配置Flutter工程-For AndroidDeveloper
iOS开发-CocoaPod之Podfile依赖文件使用介绍
q345911572的博客
04-16 3068
全局配置 生成Podfile文件 在xcode项目目录下使用命令pod init创建Podfile文件 platform:指定平台platform :ios, '8.0' source:指定pod的来源,有全局source和特定source# 全局source source 'https://github.com/CocoaPods/Specs.git' #官方默认源 source '...
Podfile了解
fangli11223344的博客
03-25 1935
一、使用背景 iOS开发会经常用到cocoapods管理第三方,简单、方便、高效。如何集成CocoaPods在cocoapods官网和Podfile语法说明会有详细介绍,本文介绍的是关于集成CocoaPods时会用到的一个文件Podfile文件 1、什么是Podfile Podfile是一种规范,描述了一个或多个项目的目标的依赖关系。 2、创建Podfile 打开Terminal,cd到项目根目录下,执行touchPodfile,会创建一个空的Podfile文件 或者 打开Termi...
IOS 项目工程添加 Podfile 配置文件并用 CocoaPods 下载配置文件第3方包简单记录
Iversons.Tian的博客
11-22 2283
前言:本博客以添加Swift第3方图表库AAInfographics为例 1、新建一个IOS项目: 在Xcode11+中创建第一个IOS应用 2、给项目添加Podfile配置文件: 打开电脑终端,然后cd到项目总路径下(Attention:就是包含Demo.xcodeproj的那个文件),然后pod init,创建podfile的配置文件,具体如下图所示: 2.1、打开终端添加Podfi......
iOS之---cocoaPods的使用详解------
代码解释生活
04-28 6991
========cocoaPods使用简易版====遇到问题具体看下面详细的 cocoaPods的使用: 1.查看源 sudo gem sources -l(查看当前ruby的源) 2.删除源 sudo gem sources --remove https://gems.ruby-china.org/ 3.设置源 sudo gem sources -a https://gems.r...
iOS项目集成Flutter
sinat_38187520的博客
12-02 2490
iOSFlutter混编目前有两种模式 一、iOS原生作为基座嵌入Flutter module(目前大部分为已存在的原生项目集成Flutter) 1、首先使用flutter doctor 检测是否有完成的flutter环境;pod --version 检测cocopods的版本(版本必须大于1.10.0) 2、新建一个iOSApp IMPDemo并在项目同级目录中新建flutter_module 文件夹(多个单词小写下划线分割), podfile文件,新建完成后结构如下: ├── IMPDe..
1253
原创
819
点赞
4183
收藏
2241
粉丝
关注
私信
写文章

热门文章

  • VS code安装和使用技巧 117719
  • Android开发之——依赖冲突Program type already present 96965
  • C++中std是什么意思? 56299
  • Android开发之——开发中的错误及解决办法 34404
  • 下载工具IDM之——无法下载此受保护的数据其他解决方案 33963

分类专栏

  • 日语 11篇
  • NAS 7篇
  • OpenCV 12篇
  • Android 51篇
  • Angular 4篇
  • Bootstrap 2篇
  • IOS 206篇
  • Leonardo 7篇
  • 微信小程序 99篇
  • Vue 15篇
  • Windows 11篇
  • Flutter 122篇
  • 维修 3篇
  • Vue2 39篇
  • JavaEE 23篇
  • Jetpack Compose 9篇
  • Kotlin 22篇
  • C++ 41篇
  • 青岛大学数据结构与算法 8篇
  • WebRTC 2篇
  • FFMPEG 3篇
  • P5.js 28篇
  • Hexo 26篇
  • 数据结构与算法基础 8篇
  • Umi 1篇
  • Electron 1篇
  • OC 60篇
  • HarmonyOS 30篇
  • 前端 2篇
  • 生活 1篇
  • 接口API 4篇
  • Java 2篇
  • Dart 13篇
  • Excel 1篇
  • Mac 14篇
  • Linux 9篇
  • Jenkins 3篇
  • WordPress 1篇
  • PHP 2篇
  • Hugo 1篇
  • C# 149篇
  • React Native 39篇
  • Rxjava 3篇
  • 移动支付 4篇
  • Ubuntu 1篇
  • 韩语 12篇
  • C 1篇
  • HTTP 2篇
  • Object-C 1篇
  • Gradle 1篇
  • Swift 1篇
  • Centos 8篇
  • 俄语 1篇
  • JSP 1篇
  • Axure 1篇
  • Python
  • Node 1篇
  • cmake 8篇
  • 安全 6篇
  • React-Native 17篇
  • 数据库 2篇
  • 版本控制 17篇
  • 工具 19篇
  • C++ 47篇
  • 面试题 3篇
  • 网站 4篇
  • 规范 2篇
  • 职业规划 3篇
  • 第三方集成
  • 运维 2篇
  • 产品
  • 技术文档 75篇
  • 硬件开发 11篇
  • 外语学习
  • 后端 1篇

最新评论

  • 抢票软件之——py12306使用指南

    m0_63969197: 求救!配置好之后打开web没有显示对应的用户名等信息和任务信息

  • IOS开发之——新浪微博(42)

    绝对i人: 请问 这个tool的 textRectWithSize:CGSizeMake(MAXFLOAT, MAXFLOAT) attributes:nameDict];这个方法具体实现是什么,我没有加这个tool

  • 抢票软件之——py12306使用指南

    2201_75284967: 查询余票请求失败 状态码 302 错误原因 Moved Temporarily 救救孩子吧表情包

  • 微信小程序开发之——录音播放及文件上传下载-示例(2)

    小脑斧: 务必使用真机测试录音,开发工具有坑

  • Hexo博客开发之——Gitalk

    饿了就去喝水: 有用有用

最新文章

  • Bootstrap开发之——Bootstrap安装及使用(02)
  • Bootstrap开发之——Bootstrap简介(01)
  • Angular开发之——Angular打包部署项目(04)
2023年37篇
2022年238篇
2021年300篇
2020年376篇
2019年50篇
2018年147篇
2017年103篇
2016年18篇
2015年1篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家南京通用玻璃钢雕塑报价定西玻璃钢植物雕塑公司岳阳玻璃钢门头雕塑福建商业商场美陈厂家供应新郑花朵玻璃钢卡通雕塑咸阳玻璃钢卡通座椅雕塑淮南景观玻璃钢雕塑订做价格重庆步行街玻璃钢雕塑图片家用玻璃钢雕塑摆件供应赤水玻璃钢雕塑卡通玻璃钢雕塑报价多少庆阳城市玻璃钢雕塑四川玻璃钢卡通雕塑厂家装饰商场美陈生产企业玻璃钢花盆的优点玻璃钢防铜雕塑文化强定西户外玻璃钢雕塑制作半边地球仪玻璃钢雕塑品牌重庆节日商场美陈福建玻璃钢公园雕塑夏季商场美陈制作公司玻璃钢雕塑价格批发辽阳玻璃钢卡通雕塑铁岭玻璃钢雕塑定制价格耐腐蚀玻璃钢雕塑高品质的选择顶部美陈商场设计玉溪市玻璃钢雕塑设计订制大连广场玻璃钢雕塑厂家天津仿铜玻璃钢雕塑定制玻璃钢动物马雕塑厂商销售香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化