1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| 在 Flutter 中,要编写平台特定(Android/iOS)代码,主要有以下三种方式:
1. 使用 dart:io 判断平台 通过 Platform.isAndroid、Platform.isIOS 判断当前运行平台,并执行不同逻辑。
import 'dart:io';
if (Platform.isAndroid) { // Android 特有逻辑 } else if (Platform.isIOS) { // iOS 特有逻辑 }
2. 使用 Platform Channels 与原生代码交互 Flutter 和原生之间通过消息通道(MethodChannel)通信,可以调用 Android(Kotlin/Java)或 iOS(Swift/Obj-C)代码。
示例: Flutter 端:
static const platform = MethodChannel('com.example/native'); Future<String> getNativeData() async { return await platform.invokeMethod('getData'); }
Android 端(Kotlin): MethodChannel(flutterEngine.dartExecutor.binaryMessenger, "com.example/native") .setMethodCallHandler { call, result -> if (call.method == "getData") { result.success("Android 原生数据") } } 3. 使用 dart:ui 获取底层平台信息 dart:ui 提供了低层次的平台窗口、像素密度、文本方向等信息,适用于高性能绘制或平台差异布局。
|