Flutter移动端实战手册,android语言基础教程

本文详细介绍了Flutter在Android上的集成过程,包括`Flutter to Native`和`Native to Flutter`的调用方法,同时讲解了Dart DevTools的使用。在混合开发中,Flutter提供MethodChannel和EventChannel进行两端数据交互。文章还提到了常见的集成错误及解决办法,如环境变量配置和权限问题。最后,作者分享了Flutter性能调试和主界面调试工具Dart DevTools的使用,帮助开发者优化代码和提升用户体验。
摘要由CSDN通过智能技术生成
  • (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

[self.lifeCycleDelegate application:application willFinishLaunchingWithOptions:launchOptions];

return YES;

}

  • (void)applicationWillResignActive:(UIApplication *)application {

[self.lifeCycleDelegate applicationWillResignActive:application];

}

  • (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {

[self.lifeCycleDelegate application:application openURL:url sourceApplication:sourceApplication annotation:annotation];

return YES;

}

随后即可加入Flutter代码,加入的方式也很简单,直接实例化一个FlutterViewController控制器即可,也不需要传其他参数进去(这里先不考虑多实例的问题)。

FlutterViewController *flutterViewController = [[FlutterViewController alloc] init];

Flutter将其看做是一个画布,实例化一个画布上去之后,任何操作其实都是在当前页面完成的。

常见错误


到这个步骤集成操作就已经完成,但是很多人在集成过程中会遇到一些错误,下面是一些常见错误。

路径错误,读取不到xcode_backend.sh文件等。这是因为环境变量FLUTTER_ROOT没有获取到,FLUTTER_ROOT配置在Generated.xcconfig中,可以看一下这个文件是不是配置的有问题。

lipo info *** arm64类似这样的错误,一般都是因为xcode_backend.sh脚本导致的,可以检查一下FLUTTER_ROOT环境变量是否正确。

下面这种问题一般都是因为权限导致的,可以查看Build Phases的脚本写的是不是有问题。

***/flutter_tools/bin/xcode_backend.sh: Permission denied

混合开发


在进行混编过程中,Flutter有一个很大的优势,就是如果Flutter代码出问题,不会导致原生应用的崩溃。当Flutter代码出现崩溃时,会在屏幕上显示错误信息。

在开发过程中经常会涉及到网络请求和持久化的问题,如果混编的话可能会涉及到写两套逻辑。例如网络请求有一些公共参数,或返回数据的统一处理等,如果维护两套逻辑的话会容易出问题。所以建议将网络请求和持久化操作都交给Platform处理,Flutter侧只负责向Platform请求并拿来使用即可。

这个过程就涉及到两端数据交互的问题,Flutter对于混编给出了两套方案,MethodChannel和EventChannel。从名字上来看,一个是方法调用,另一个是事件传递。但实际开发过程中,只需要使用MethodChannel即可完成所有需求。

Flutter to Native

下面是Flutter调用Native的代码,在Native中通过FlutterMethodChannel设置指定的回调代码,并且在接收参数并处理。由Flutter通过MethodChannel对Native发起调用,并传入对应的参数。

代码中在Flutter侧构建好数据模型,然后调用MethodChannel的invokeMethod&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值