Flutter进阶—平台插件
这篇文章我们会学习Flutter应用程序如何与iOS和Android设备上可用的平台特定代码集成,这包括设备API,(比如url_launcher和battery)和第三方平台SDK(比如Firebase)。 使用现有的平台插件Flutter插件是一种特殊的包,一个插件包含一个用Dart编写的API定义,结合Android的平台特定实现,适用于iOS或两者兼容。 搜索插件现有的Flutter插件可以在Flutter插件仓库查找,其显示在pub存储库中共享的插件。因为Flutter仍然是一个年轻的语言,目前在pub上只有一小部分插件,需要作为Flutter程序员的我们开发和发布新的插件! 在程序中添加插件如果要添加一个插件“plugin1”到一个应用程序:
演示实例URL Launcher插件允许您打开移动平台上的默认浏览器来显示给定的URL,它在Android和iOS上均受支持。我们就写一个使用Flutter URLLauncher插件启动浏览器的实例。 首先打开pubspec.yaml,并添加url_launcher插件: dependencies:
flutter:
sdk: flutter
url_launcher:
添加完成之后记得点击顶部的“Packages Get”,然后再打开lib/main.dart,并将其全部内容替换为以下代码: import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
void main() {
runApp(new MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Flutter Demo',home: new DemoPage(),);
}
}
class DemoPage extends StatelessWidget {
launchURL() {
launch('https://www.baidu.com/');
}
@override
Widget build(BuildContext context) {
return new Scaffold(
body: new Center(
child: new RaisedButton(
onPressed: launchURL,child: new Text('百度首页'),)
)
);
}
}
运行应用程序,当您点击“百度首页”时,您应该会看到手机的默认浏览器打开,并显示百度首页。 创建一个平台插件如果您希望在多个Flutter应用程序中使用特定于平台的代码,将代码分离到位于主应用程序之外的目录中,作为平台插件是很好的方案,甚至还能分享给所有Flutter开发人员。 您可以使用–plugin标记与flutter create创建一个插件项目。使用–org选项指定您的组织,使用反向域名符号,该值用于生成的Android和iOS代码中的各种包和包标识符。 flutter create --org com.example --plugin hello
这将在hello/文件夹中创建一个包含以下内容的插件项目:
默认情况下,该插件项目使用Objective-C的iOS代码和Java的Android代码。如果您喜欢Swift或Kotlin,则可以使用-i指定iOS语言或使用-a指定Android语言。 flutter create --plugin -i swift -a kotlin hello
编辑插件的源代码插件API代码(.dart)要编辑Dart插件API代码,需要在IntelliJ IDEA(或者您喜欢的Dart编辑器)中打开hello/,插件API位于项目视图中显示的lib/main.dart中。 要运行插件,您需要启动插件示例应用程序,这需要定义启动配置:
Android平台的代码(.java/.kt)在Android Studio中编辑Android平台代码之前,首先要确保代码已经构建至少一次,即从IntelliJ运行示例应用程序,或在终端中执行 接下来,进行以下操作:
您的插件的Android平台代码位于 iOS平台的代码(.h+.m/.swift)在编辑Xcode中的iOS平台代码之前,首先要确保代码已经构建至少一次,即从IntelliJ运行示例应用程序,或在终端中执行 接下来,进行以下操作:
插件的iOS平台代码位于项目导航器中的 管理从Flutter程序到Flutter插件的依赖关系一旦插件已经发布,您可以依赖它,只需在pubspec.yaml中列出它的名称,比如上面的例子。在开发尚未发布的插件或者不适用于公开发布的私有插件的开发中,依赖于插件还有其他的方法:
dependencies:
flutter:
sdk: flutter
plugin1:
path: ../plugin1/
dependencies:
flutter:
sdk: flutter
plugin1:
git:
url: git://github.com/flutter/plugin1.git
发布平台插件一旦你实现了插件,你可以在Pub发布。这使得其他开发人员可以轻松地使用它,如同上述UrlLauncher的演示实例。发布的方法会在以后的文章中详细讲解… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |