Flutter 插件
如何使用 GPS sensor
要访问GPS传感器,您可以使用社区插件 https://pub.dartlang.org/packages/location
如何访问相机
访问相机的流行社区插件是 https://pub.dartlang.org/packages/image_picker
如何使用Facebook登陆
要访问Facebook Connect功能,您可以使用 https://pub.dartlang.org/packages/flutter_facebook_connect .
如何构建自定义集成Native功能
如果有Flutter或其社区插件缺失的平台特定功能,那么您可以自己按照以下教程构建 开发packages .
简而言之,Flutter的插件架构就像在Android中使用Event bus一样:您可以发出消息并让接收者进行处理并将结果返回给您,在这种情况下,接收者将是iOS或Android。
如何在我的Flutter应用程序中使用NDK
自定义插件首先会与Android应用程序通信,您可以在其中调用native标记的函数。一旦Native完成了相应操作,就可以将响应消息发回给Flutter并呈现结果。
主题
如何构建Material主题风格的app
Flutter很好的实现了一个美丽的Material Design,它会满足很多样式和主题的需求。 与Android中使用XML声明主题不同,在Flutter中,您可以通过顶层widget声明主题。
MaterialApp是一个方便的widget,它包装了许多Material Design应用通常需要的widget,它通过添加Material特定功能构建在WidgetsApp上。
如果你不想使用Material Components,那么你可以声明一个顶级widget-WidgetsApp,它是一个便利的类,它包装了许多应用程序通常需要的widget
要自定义Material Components的颜色和样式,您可以将ThemeData对象传递到MaterialApp widget中,例如在下面的代码中,您可以看到主色板设置为蓝色,并且所有选择区域的文本颜色都应为红色。
class SampleApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Sample App',
theme: new ThemeData(
primarySwatch: Colors.blue,
textSelectionColor: Colors.red
),
home: new SampleAppPage(),
);
}
}
数据库和本地存储
如何在Flutter中访问Shared Preferences ?
在Android中,您可以使用SharedPreferences API存储一些键值对
在Flutter中,您可以通过使用插件Shared_Preferences来访问此功能
这个插件包装了Shared Preferences和NSUserDefaults(与iOS相同)的功能
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
void main() {
runApp(
new MaterialApp(
home: new Scaffold(
body: new Center(
child: new RaisedButton(
onPressed: _incrementCounter,
child: new Text('Increment Counter'),
),
),
),
),
);
}
_incrementCounter() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
int counter = (prefs.getInt('counter') ?? 0) + 1;
print('Pressed $counter times.');
prefs.setInt('counter', counter);
}
如何在Flutter中访问SQLite
在Android中,您可以使用SQLite存储,通过SQL查询的结构化数据。
在Flutter中,您可以使用SQFlite插件来访问SQFlite此功能
通知
如何设置推送通知
在Android中,您可以使用Firebase云消息传递为您的应用设置推送通知。
在Flutter中,您可以使用Firebase_Messaging插件访问此功能