iOS开发者新技能:将Flutter集成到你的原生应用中

news2024/12/23 19:43:54

如何在iOS原生项目中嵌入Flutter

一、创建一个新的iOS项目

首先,在 Xcode 中创建一个新的 iOS 项目,选择 Swift 作为开发语言,因为它的语法简洁,易于理解。

二、打包Flutter项目

在将 Flutter 模块集成到 iOS 项目之前,需要将 Flutter 项目打包成 framework 文件。

有几种方式可以实现,这里我们采用将 Flutter 项目打包为 framework 文件的方法,因为它相对简单。

1、创建Flutter项目:

新建一个 Flutter 项目(就不讲创建过程了),并在其中创建一个简单的页面,如图:

2、打包Flutter项目

使用以下命令将 Flutter 项目打包为 iOS framework

flutter build ios-framework --output=framework/

此处可以将打包好的文件放置在你想放的任意目录下,我此处选择的是当前项目的 framework/ 下。

3、检查打包文件:

打包完成后,你会得到三个文件夹,分别对应不同的构建环境(DebugProfileRelease)。

如果 Flutter 项目中使用了插件,可能会生成额外的 framework 文件。

三、将Flutter framework集成到iOS工程中

1、引入framework文件:

Xcode 中,选择你的 target ,然后在 Build Phases 下的 Link Binary With Libraries 部分,添加你刚刚打包好的 Flutter framework 文件。

建议选择 Release 版本的文件,因为它是为发布优化的。

如果需要在模拟器中运行,最好选择 Debug 版本。

2、编写引入代码:

在你的 iOS 项目中,例如在 ViewController.swift 文件中,编写代码来加载 Flutter 页面。

创建一个按钮,当点击这个按钮时,会展示 Flutter页面,代码如下:

import UIKitimport Flutterimport FlutterPluginRegistrant
class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let button = UIButton(type: .system)
        button.setTitle("Show Flutter", for: .normal)
        button.addTarget(self, action: #selector(showFlutter), for: .touchUpInside)
        button.frame = CGRect(x: 100, y: 100, width: 200, height: 50)
        self.view.addSubview(button)
    }
    
    @objc func showFlutter() {
        print("showFlutter--------")
        let flutterEngine = FlutterEngine(name: "flutter engine")
        flutterEngine.run()
        let flutterViewController = FlutterViewController(engine: flutterEngine, nibName: nil, bundle: nil)
        present(flutterViewController, animated: true, completion: nil)
    }
}

四、效果展示

当你点击 showFlutter 按钮时,应用会展示 Flutter 页面。

这样,你就可以在 iOS 原生项目中嵌入 Flutter 模块,并实现页面的跳转和展示。

通过上述步骤,你可以将 Flutter 模块嵌入到 iOS 原生项目中,利用 Flutter 的高性能渲染和丰富的组件库,提升应用的用户体验。

– 欢迎点赞、关注、转发、收藏【我码玄黄】,各大平台同名。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2121075.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows conda常用方法

这里写目录标题 conda链接jupyter conda链接jupyter 列出当前所有环境: conda env list 创建新环境: conda create -n your_env_name pythonX.X(2.7、3.6、3.8等) 激活环境: conda activate your_env_name 链接jupyte…

大模型微调有必要做吗?LoRa还是RAG?

我需要对大模型做微调吗? 想自定义大模型时,选择:微调还是RAG还是ICL? 需要对大模型做微调? 在人工智能的世界里,大型语言模型(LLM)已经成为了我们探索未知、解决问题的得力助手。…

uniapp业务实现

uni.requset添加异常判断提示,以及加载动画 /*** 该函数用于发送网络请求获取数据* 请求失败时会弹出相应的错误提示* 请求成功时会检查返回的数据是否存在错误,并根据错误代码做出相应处理* 如果数据请求成功且无错误,则将返回的数据赋值给pets变量*/fu…

NVIDIA Triton Inference Server 部署 yolov5

文章目录 一、拉取 tensorrt 、yolov5、tritonserver 镜像二、下载 yolov5-6.2、tensorrtx/yolov5-6.2源码三、pt转wts四、wts转engine五、创建triton推理服务器六、创建客户端进行测试 一、拉取 tensorrt 、yolov5、tritonserver 镜像 docker pull hakuyyf/tensorrtx:trt8.2_…

群晖NAS本地部署Photopea在线图片PS编辑工具

文章目录 前言1. 部署Photopea2. 运行Photopea3. 群晖安装Cpolar4. 配置公网地址5. 公网访问测试6. 固定公网地址 前言 本文主要介绍如何在群晖NAS本地部署Photopea在线图片PS编辑工具,并结合cpolar内网穿透实现公网环境远程访问本地部署的Photopea处理图片. Phot…

JAVA开源项目 员工绩效考核系统 计算机毕业设计

本文项目编号 T 021 ,文末自助获取源码 \color{red}{T021,文末自助获取源码} T021,文末自助获取源码 目录 一、系统介绍1.1 业务分析1.2 用例分析 二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行…

梧桐数据库|中秋节活动·抽奖领取大闸蟹

有话说 众所周不知,我的工作就是做一个国产的数据库产品—中国移动梧桐数据库(简称WuTongDB)。 近期我们举办了一次小活动,来提升梧桐数据库的搜索量和知名度,欢迎大家来参加,免费抽奖领取大闸蟹哦~~~ 具…

AIGC入门:Comfyui整合包,解压即用!

前言 今天给大家分享的Comfyui的整合包,无需复杂的操作,解压即可使用。 整合包已经打包好了,获取方式放在👇,需要的朋友可以自行领取哦。 什么是Comfyui ComfyUI采用节点式的操作方式,这种方式让用户能…

有哪些好用的终端行为审计系统?

终端行为审计软件是用于监控、记录和分析计算机终端操作行为的工具,它们对于提高企业信息安全管理、防止内部数据泄露和提升内控水平至关重要。 1. 金刚钻信息网站行为审计系统:通过细粒化审计终端用户行为,提供文件操作日志、文件外发日志、…

WRF-LES与PALM微尺度气象大涡模拟、PALM静态数据预备、PALM驱动数据预报、PALM模拟

查看原文>>>WRF-LES与PALM微尺度气象大涡模拟及ChatGPT在大气科学领域应用 针对微尺度气象的复杂性,大涡模拟(LES)提供了一种无可比拟的解决方案。微尺度气象学涉及对小范围内的大气过程进行精确模拟,这些过程往往与天气…

2024年身份验证技术应用的10大发展趋势

文章目录 前言一、无密码身份验证1、流行的无密码身份验证方法二、基于行为的身份识别技术1、主流的行为身份识别技术三、社交媒体授权登录1、应用社交媒体授权登录的好处四、去中心化身份验证1、去中心化身份验证的主要功能和优点五、自适应身份验证六、身份威胁检测和响应(I…

远程搜索:remote-method

为了启用远程搜索,需要将filterable和remote设置为true,同时传入一个remote-method。remote-method为一个Function,它会在输入值发生变化时调用,参数为当前输入值。需要注意的是,如果el-option是通过v-for指令渲染出来…

吐血整理nacos 作为springcloud的配置中心和注册中心

吐血整理nacos 作为配置中心和注册中心 环境版本nacos 版本 nacos启动单机模式启动配置数据库 Spring cloud 连接注册Nacos配置中心导入依赖 注册中心 环境版本 SpringBoot版本SpringCloud版本cloud Alibaba版本2.6.132021.0.52021.0.5.0 参照依据 spring-cloud-alibab 对应…

公众号赠书给您,祝您教师节快乐!

在此教师节即将来临之际,《人工智能怎么学》公众号恭祝各位老师们节日快乐! 为了对各位老师表示最崇高的敬意,特开展教师节赠书活动。您只需要在9月15号22点前扫描下方二维码填写登记表,前5位登记的老师,每人均可获赠…

关于网卡用一会就无法使用的处理

1、背景 使用ubuntu 18操作系统,部署的.net 6的数采程序,使用嵌入式边缘计算终端,有一个网口,一个 wifi,一个中兴随身WIFI。数据程序通过网口与三菱Q系例PLC的转换器网口通讯,采集频率每60秒读一次PLC的点位…

DFS算法专题(二)——穷举vs暴搜vs深搜vs回溯vs剪枝【OF决策树】

目录 1、决策树 2、算法实战应用【leetcode】 2.1 题一:全排列 2.2.1 算法原理 2.2.2 算法代码 2.2 题二:子集 2.2.1 算法原理【策略一】 2.2.2 算法代码【策略一】 2.2.3 算法原理【策略二,推荐】 2.2.4 算法代码【策略二&#x…

【人工智能】Transformers之Pipeline(十六):表格问答(table-question-answering)

​​​​​​​ 目录 一、引言 二、表格问答(table-question-answering) 2.1 概述 2.2 基于BERT的表格问答模型—TAPAS(TAble PArSing) 2.3 应用场景​​​​​​​ 2.4 pipeline参数 2.4.1 pipeline对象实例化参数 2.4…

mysql 限制用户登录次数超过3次就 锁定账户在一段时间内不运行操作

这里是引用 主要实现步骤: 1.目测安装的mysql版本得是5.7.40往上,因为我的版本是5.7.14发现里面没有控制等下限制这个插件,插件具体的查看是在你安装目录下的lib/pugin下面 比如我的:C:\zz\ProgramFiles\MySQL\MySQL Server 5.7\l…

【VSCode扩展】通义灵码运行提示“此应用无法在你的电脑上运行”

🤵 作者:coderYYY 🧑 个人简介:前端程序媛,目前主攻web前端,后端辅助,其他技术知识也会偶尔分享🍀欢迎和我一起交流!🚀(评论和私信一般会回&#…

AI模型“减肥”风潮:量化究竟带来了什么?

量化对大模型的影响是什么 ©作者|YXFFF 来源|神州问学 引言 大模型在NLP和CV领域的广泛应用中展现了强大的能力,但随着模型规模的扩大,对计算和存储资源的需求也急剧增加,特别是在资源受限的设备上面临挑战。量化技术通过将模型参数和…