url_launcher
插件名称:url_launcher
使用Demo
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
class Url_launcherPage extends StatefulWidget {
@override
_Url_launcherPageState createState() => _Url_launcherPageState();
}
class _Url_launcherPageState extends State<Url_launcherPage> {
@override
Widget build(BuildContext context) {
return Container(
color: Colors.white,
child: ListView(
children: [
textButtonItem('打开外部浏览器', "https://cflutter.com"),
textButtonItem('拨打电话', "tel:10086"),
textButtonItem('发送短信', "sms:10086"),
textButtonItem('打开微信', "weixin://"),
textButtonItem('打开支付宝', 'alipays://'),
textButtonItem('打开淘宝', 'taobao://'),
textButtonItem(
'发送邮件', "mailto:luckly@gmail.com?subject=Test&body=测试"),
// 协议格式:mailto:<email address>?subject=<subject>&body=<body>
],
),
);
}
Widget textButtonItem(String title, String urlLink) {
return TextButton(
child: Text(title),
onPressed: () async {
// 苹果App升级用的此方式
// 前提是首先获取App在苹果里面的地址
var url = urlLink;
if (await canLaunch(url)) {
await launch(url);
} else {
throw 'Could not launch $url';
}
},
);
}
}
打开其它应用时,都是改变相应的url协议地址即可,跳转原理参照原生开发使用的url scheme,常用的如下:
QQ: mqq://
微信: weixin://
京东: openapp.jdmoble:// 测试了,好像不行
淘宝: taobao://
美团: imeituan://
点评: dianping://
1号店: wccbyihaodian://
支付宝: alipay://
微博: sinaweibo://
腾讯微博: TencentWeibo://
weico微博: weico://
知乎: zhihu://
豆瓣fm: doubanradio://
网易公开课: ntesopen://
Chrome: googlechrome://
QQ浏览器: mqqbrowser://
uc浏览器: ucbrowser://
搜狗浏览器: SogouMSE://
百度地图: baidumap:// bdmap://
优酷: youku://
人人: renren://
我查查: wcc://
有道词典: yddictproapp://
微盘: sinavdisk://
名片全能王: camcard://