Flutter 与原生交互总结
warning:
这篇文章距离上次修改已过183天,其中的内容可能已经有所变动。
import 'package:flutter/services.dart';
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// 此处省略其他代码...
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
// 其他主题设置...
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
static const platform = MethodChannel('samples.flutter.dev/battery');
String _batteryLevel = 'Unknown battery level.';
Future<void> _getBatteryLevel() async {
String batteryLevel;
try {
final int result = await platform.invokeMethod('getBatteryLevel');
batteryLevel = 'Battery level at $result%.';
} on PlatformException catch (e) {
batteryLevel = "Failed to get battery level: '${e.message}'.";
}
setState(() {
_batteryLevel = batteryLevel;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'Battery level: $_batteryLevel\n',
style: TextStyle(fontSize: 24),
),
RaisedButton(
child: Text('Get Battery Level'),
onPressed: _getBatteryLevel,
),
],
),
),
);
}
}
这个代码示例展示了如何在Flutter中创建一个与原生平台交互的应用。它定义了一个方法通道来与原生代码通信,并展示了如何从原生代码获取电池电量信息,并在Flutter界面上显示。这个示例对于学习如何在Flutter和原生之间进行通信是非常有帮助的。
评论已关闭