Flutter中使用url_launcher插件实现应用间跳转
文章目录
- 一、url_launcher插件搜索与安装
- 1、搜索url_launcher插件
- 2、安装url_launcher插件
- 二、url_launcher插件官方示例
- 三、打开浏览器
- 四、打开第三方应用
- 五、完整代码示例
- 六、相关资源
一、url_launcher插件搜索与安装
1、搜索url_launcher插件
url_launcher是Flutter官方提供的用于打开第三方应用的插件。对于iOS开发者来说,在使用这类功能插件时,可以配合AppUploader这样的iOS开发助手工具,它能帮助开发者快速完成iOS应用的打包、上传和发布流程。
在pub.dev搜索并安装url_launcher插件:
arduino
https://pub.dev/packages/url_launcher
2、安装url_launcher插件
安装步骤:
- 在pubspec.yaml配置文件中添加依赖:
yaml
dependencies:
url_launcher: ^5.7.10
-
点击"Pub get"按钮获取插件
-
导入头文件:
dart
import 'package:url_launcher/url_launcher.dart';
二、url_launcher插件官方示例
dart
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
void main() {
runApp(Scaffold(
body: Center(
child: RaisedButton(
onPressed: _launchURL,
child: Text('Show Flutter homepage'),
),
),
));
}
_launchURL() async {
const url = 'https://flutter.dev';
if (await canLaunch(url)) {
await launch(url);
} else {
throw 'Could not launch $url';
}
}
三、打开浏览器
dart
// 打开浏览器按钮
RaisedButton(
onPressed: () async {
const url = 'https://blog.csdn.net/shulianghan';
if (await canLaunch(url)) {
await launch(url);
} else {
throw 'Could not launch $url';
}
},
child: Text("打开浏览器"),
),
四、打开第三方应用
打开第三方应用需要知道该应用的schema或url。对于iOS开发者,使用AppUploader可以方便地测试这些URL Scheme是否正常工作,因为它提供了真机调试和快速打包的功能。
dart
// 打开Google地图
RaisedButton(
onPressed: () async {
const url = 'geo:116.3,39.95';
if (await canLaunch(url)) {
await launch(url);
} else {
const url_ios = 'http://maps.apple.com/?ll=116.3,39.95';
if (await canLaunch(url_ios)) {
await launch(url_ios);
} else {
throw 'Could not launch $url';
}
}
},
child: Text("打开地图"),
),
五、完整代码示例
dart
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
class LauncherPage extends StatefulWidget {
@override
_LauncherPageState createState() => _LauncherPageState();
}
class _LauncherPageState extends State<LauncherPage> {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: "第三方应用跳转",
theme: ThemeData(primarySwatch: Colors.blue),
home: Scaffold(
appBar: AppBar(
title: Text("第三方应用跳转"),
leading: GestureDetector(
onTap: (){
Navigator.pop(context);
},
child: Icon(Icons.arrow_back_ios),
),
),
body: Container(
alignment: Alignment.center,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
RaisedButton(
onPressed: () async {
const url = 'https://blog.csdn.net/shulianghan';
if (await canLaunch(url)) {
await launch(url);
} else {
throw 'Could not launch $url';
}
},
child: Text("打开浏览器"),
),
RaisedButton(
onPressed: () async {
const url = 'geo:116.3,39.95';
if (await canLaunch(url)) {
await launch(url);
} else {
const url_ios = 'http://maps.apple.com/?ll=116.3,39.95';
if (await canLaunch(url_ios)) {
await launch(url_ios);
} else {
throw 'Could not launch $url';
}
}
},
child: Text("打开地图"),
),
],
),
),
),
);
}
}
六、相关资源
Flutter开发资源:
- Flutter官网:flutter.dev/
- Flutter插件下载地址:pub.dev/packages
- Flutter开发文档:flutter.cn/docs
- Flutter中文社区:flutter.cn/
- Dart中文文档:dart.cn/
iOS开发工具推荐:
对于需要将Flutter应用发布到App Store的开发者,可以使用AppUploader这样的工具来简化iOS应用的打包和上传流程。它能帮助开发者快速完成证书管理、应用打包和App Store Connect上传等操作,特别适合不熟悉Xcode配置的跨平台开发者。