1.url_launcher使用场景
在原生开发中,我们通常会用户调用底层的拨打电话、发送邮件、发送信息以及打开网址和打开第三方应用等等,在Flutter也同样支持。下面简单的介绍一下url_launcher这款插件的使用(支持IOS和Android)
2.代码实例:
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';
}
}
3.封装的扩展
/// 打开链接
static Future<void> launchWebURL(String url) async {
final Uri uri = Uri.parse(url);
if (await canLaunchUrl(uri)) {
await launchUrl(uri);
} else {
Toast.Show('打开链接失败!');
}
}
/// 发送短信
static Future<void> launchSmsURL(String phone) async {
final Uri uri = Uri.parse('sms: $phone');
if (await canLaunchUrl(uri)) {
await launchUrl(uri);
} else {
Toast.Show('打开失败!');
}
}
/// 发送邮件
static Future<void> launchEmailURL(String email, String subject, String body) async {
final Uri uri = Uri.parse('mailto:$email.com?subject=$subject&body=$body');
if (await canLaunchUrl(uri)) {
await launchUrl(uri);
} else {
Toast.Show('打开失败!');
}
}
4.常见的url scheme
序号 | 类别 | 地址 |
1 |
mqq:// | |
2 | 微信 | weixin:// |
3 | 淘宝 | taobao:// |
4 | 美团 | imeituan:// |
5 | 点评 | dianping:// |
6 | 1号店 | wccbyihaodian:// |
7 | 微博 | sinaweibo:// |
8 | 腾讯微博 | TencentWeibo:// |
9 | weico微博 | weico:// |
10 | 知乎 | zhihu:// |
11 | 豆瓣 | doubanradio:// |
12 | 网易公开课 | ntesopen:// |
13 | Chrome | googlechrome:// |
14 | QQ浏览器 | mqqbrowser:// |
15 | uc浏览器 | ucbrowser:// |
16 | 搜狗浏览器 | SogouMSE:// |
17 | 百度地图 | baidumap:// bdmap:// |
18 | 优酷 | youku:// |
19 | 人人 | renren:// |
20 | 我查查 | wcc:// |
21 | 有道词典 | yddictproapp:// |
22 | 微盘 | sinavdisk:// |
23 | 名片全能王 | camcard:// |
24 | 支付宝 | alipay:// |