Flutter url_launcher插件使用非常简单,在学习如何使用它之前,小编将来介绍一下url_launcher插件的作用与使用场景,以及url_launcher与webView的区别。
url_launcher使用场景
当我们在QQ聊天的过程中,如果有人给我们发送了一个手机号码,当我们用手指点这个手机号码的时候,QQ软件会弹出手机默认的拨打电话的弹窗。
如果对方发送的邮件,QQ也会调用我们手机默认的邮件软件让我们发邮件给对方。
如果对方给我们发送了一个网址,当我们在QQ中打开这个网址的时候,QQ会提醒我们是否使用默认浏览器打开该网址,如果确认之后,就会自动调用我们手机的默认浏览器。
有些软件还会提供一个短信发送按钮,当我们点击该按钮的时候,就会自动调用手机的短信发送功能。
这些在原生的Android与IOS开发中,都会提供对应的类来解决这些问题,那么在我们的Flutter开源框架中,该如何实现这些功能呢?这个时候Flutter就为我们提供了url_launcher插件来实现此功能,如下是url_launcher的规则:
URL规则示例 | 作用 |
---|---|
http:<URL> , https:<URL> , e.g. http://flutter.io | 在默认浏览器中打开网址 |
mailto:<email address>?subject=<subject>&body=<body> , e.g. mailto:smith@example.org?subject=News&body=New%20plugin | 在默认邮件应用中给指定邮箱发送邮件 |
tel:<phone number> , e.g. tel:+1 555 010 999 | 默认拨打电话功能 |
sms:<phone number> , e.g. sms:5550101234 | 发送SMS信息 |
如何在我们的Flutter项目中加入url_launcher插件呢?
首先需要在我们项目的“pubspec.yaml”配置文件的dependencies中加入url_launcher插件的依赖“url_launcher: ^3.0.2”,如图所示:
yaml配置文件是很严格的,一个空格都会影响插件的加载成功与否,所以这点要注意。
如何在Flutter项目代码中使用url_launcher插件?,以点击button按钮之后加载Flutter主页为例,如下:
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.io'; if (await canLaunch(url)) { await launch(url); } else { throw 'Could not launch $url'; } }
最上面有介绍到URL规则,假如我要给某个手机打电话,我们可以将const url = 'https://flutter.io'; 换成 const url = 'tel://18620145489'; 即可。
url_launcher与webView的区别
url_launcher插件是用来唤起手机系统的默认应用,并浏览网页,发送短信,打电话,都是在本app应用外做事情,而webview是在应用内打开网页,相当于把浏览器内置到自己的app中了。