综述 Flutter从架构上来说有3部分:用Dart写的Framework层,面向开发者用Java/Kotlin写的Embdder层(For Android,iOSOC/Swift),纯Flutter App不需要关心用C++写的Engine层,提供Dart运行环境和底层绘制能力针对每个部分,对应的源码阅读环境不同,调试方法也不同。对于阅读环境,最重要的是能够正确地完成调用/定义的跳转。对于调试
Fluttify是什么?Fluttify是一个可以为原生SDK生成Dart接口的一个工具。github地址:https://github.com/fluttify-project Fluttify解决了什么问题?这里要先说明一下插件开发的几种方式:常规插件开发方式(Native厚,Dart薄) 常规的开发方式是把功能实现下沉到原生端,然后再在Dart端对封装好的原生方法进行一
前言在前面的文章中我们讲了许多Flutter中的组件和Flutter中的特定操作,但是单单使用Flutter里的组件和方法是不够的。就像以前我们讲到文件存储、数据库操作单单靠使用Flutter我们是不能完成的,因为这些数据最终需要存储在特定的终端平台上,我们需要通过特点的代码来实现与特点的平台交互,所以我们引入了第三方库来完成这些操作。当然,这些第三方库帮我们实现了与不同平台交互的代码,所以我们不
转载 5月前
19阅读
一、前言在 Android的开发中,我们有 JNI 使得 Java可以调用本地应用或库。 Flutter 在前不久发布了 Flutter2,更新了 FFI (我们是否可以把它叫做DNI呢?)进入了稳定状态,开发者可以更安心的使用其功能。 但是相关的文档依然很欠缺,导致使用起来有诸多的疑问,以及相关原理性的介绍比较少,所以整理记录一下。二、Dart 同步调用 Native 方法我们以最简单的demo
转载 6月前
58阅读
swift调用oc的方法:1、桥接文件,一般是swift工程,在创建一个oc文件时,系统自动添加(不用改名,直接默认即可)2、将需要引用的oc文件 .h头文件 添加到桥接类中。 如下:然后在swift调用处,直接就可以使用了。 oc调用swift的方法:1、首先设置一下Packing进入TARGETS ->Build Settings -> Packaging 中设
转载 2023-05-31 10:12:22
779阅读
# iOS Swift 调用 Objective-C 在iOS开发中,有时我们需要在Swift项目中使用Objective-C编写的代码,或者调用Objective-C类的方法。虽然Swift和Objective-C可以相互调用,但是在两种语言之间存在一些差异,需要注意一些细节。 ## 在Swift项目中使用Objective-C代码 在Xcode中创建一个Swift项目,并且想要使用Obj
原创 2月前
55阅读
目录 1. 文件操作 2. Json转Model 3. HttpClient 4. dio三方库 5. Http分块下载 6. 使用WebSockets 7. 使用Socket API(dart:io包中) 8. http三方库1. 文件操作无论是Flutter还是DartVM下的脚本(系统路径不同,Dart VM运行在PC或服务器操作系统下,Flutter运行在移
1.从iOS7开始 苹果公布了JavaScriptCore.framework 它使得JS与OC的交互更加方便了。2.oc调用js-(void)webViewDidFinishLoad:(UIWebView *)webView { //首先创建JSContext 对象(此处通过当前webView的键获取到jscontext) JSContext *conte
转载 2023-07-13 15:04:23
109阅读
首先在项目中,为了保障工作的稳定性(工作不好找),使用混合式开发室最好的选择(前提是自己能够看得懂自己写的代码)。废话一小段…….一、首先说一下调用的问题:OC->Swift(OC调用Swift) 首先配置一下环境:如图 1、Build Settings->Packaging->Defines Module 设置为 Yes 2、在修改在 build setting 中的 P
首先导入 #import <JavaScriptCore/JavaScriptCore.h>声明 对象@propertynonatomic, strong) JSContext *context; 1, oc调用js的方法并获取参数- (void)webViewDidFinishLoad:(UIWebView *)webView{ //初始化 contex
新建一个objectivec工程新建一个swift文件,提示要不要建一个bridge文件选择是buildsettings里面enable swift 然后新建一个oc的类#import <Foundation/Foundation.h> @interface ObjcObj : NSObject - (void)test; - (void)test1; @end #i
swift与oc的代码是可以互相调用的创建一个类 继承自nsobject 随后在,h文件中声明一个方法,随后再.m文件中实现这个方法 在桥接文件中 添加进这个文件的头文件 随后就可以直接在swift的代码中调佣这个OC的代码在.h文件中#import <Foundation/Foundation.h> @interface sayHello : NSObject -(void)say
转载 2023-05-29 22:32:11
752阅读
上篇我们介绍了 Flutter 模块集成到已有的项目工程,接下来我们看看 Native 跟 Flutter 间的交互问题。交互通信Flutter 与原生之间的通信依赖灵活的消息传递方式:1,Flutter 部分通过平台通道将消息发送到其应用程序的所在的宿主环境(原生应用)。2,宿主环境通过监听平台通道,接收消息。然后它会调用平台的 API,响应 Flutter 发送的消息。Flutter主动 调用
背景我们在 Flutter Android 端的 Java 层代码中经常看到 FlutterEngine、FlutterEngineGroup、FlutterEngineCache 等相关类的使用,你是不是也经常搞不清他们的关系和作用?本文就是对他们的一个解剖分析,由于 Flutter 2 版本对这块做了大调整,所以我们的分析以 2.2.3 版本为例分析。FlutterEngine 相关分析Flu
Flutter应用启动流程分析(三)在创建FlutterView时首先创建了FlutterNativeView,这里先看看FlutterNativeView是怎么创建的; FlutterNativeView实现了BinaryMeeenger接口,下面看一下都有哪些属性private final FlutterPluginRegistry mPluginRegistry; private f
转载 2023-08-20 20:07:49
352阅读
首先说明一下 : 后台经常会给到我们这样的 JS 方法 :app.exit (); app.logout (); save ( cardno ); 等类似的方法 这类方法我们可以通过实现了 JSExport 协议来调用它; 首先创建 <NSObject>  类 .H 文件
# JSBridge: iOS OC调用JS 在移动应用开发中,有时我们需要在原生应用中调用Web页面中的JavaScript方法,或者在JavaScript中调用原生应用中的Objective-C代码。这就需要使用到JSBridge技术,通过JSBridge实现Objective-C和JavaScript之间的通信。 ## 什么是JSBridge? JSBridge是一种实现原生应用(如i
原创 2023-07-24 05:46:46
170阅读
iOS OC调用JS方法是实现Hybrid开发的关键技术之一。在开发过程中,我们经常需要在iOS原生界面中调用JavaScript的方法,以实现更加丰富的交互效果。下面我将以一个简单的例子来教你如何实现这个功能。 首先,我们需要了解整个过程的流程。我将通过表格来展示每个步骤需要做什么。 | 步骤 | 描述 | | --- | --- | | 1 | 创建WKWebView对象,并加载一个网页
原创 7月前
98阅读
一、前言:目前混合开发属于主流,因为多数都在原来的项目上集成Flutter模块,除非新的项目用纯Flutter,那是挺爽的。二、集成(以iOS为例),使用Pods方式 1、首先创建一个Flutter模块(非Flutter项目,是模块) 2、创建后之后,把原生项目和Flutter模块放在一个文件夹下,同一层级。 3、原生项目打开Podfile,加入Flutter,如下// my_flutter 是创
转载 2023-09-20 06:29:08
583阅读
一、前言前一天,学习了Dart语法,对Dart的语法和特性有了更深一步的了解。今天,来学习Flutter的基础控件,身为Android开发者都知道,一开始入坑Android就要熟悉学习其控件,如:TextView,ImageView,Button,ListView,RecycleView等。为什么要学习呢?因为平时的开发都离不开这些控件,UI的呈现都是有这些控件组成的,因此,其重要性就不用说了。对
转载 2月前
0阅读
  • 1
  • 2
  • 3
  • 4
  • 5