Flutter圈子FlutterFlutter中文社区

Flutter 如何快速打开第三方应用

2019-11-03  本文已影响0人  程序猿在广东

学习Flutter也有一段时间了,今天简单总结一下怎样使用Flutter快速打开第三方应用。1url_launcher插件

image

url_launcher是flutter官方提供的一款用于在移动平台中启动URL的插件库,因此使用起来非常方便,跟其他插件库一样先引入,然后使用即可;url_launcher支持跳转默认浏览器打开URL、拨打电话、短信、打开微信或QQ、地图等。

使用

1.将url_launcher添加到包的pubspec.yaml文件中构建:

dependencies:  url_launcher: ^5.2.5

与其他插件库一样构建完之后,引入使用

import 'package:url_launcher/url_launcher.dart';

2.在默认浏览器中打开URL

主要API为canLaunch、launch,插件已经封装好了底层源码,实际上也是居于Android和iOS与原生交互封装的;所以我们在使用上,只用到canLaunch、launch方法就够了。

如下是跳到默认浏览器打开url的实例:

_launchURL() async {
  const url = 'https://flutter.dev';
  if (await canLaunch(url)) {
    await launch(url);
  } else {
    throw 'Could not launch $url';
  }
}

先通过canLaunch判断url是否可以正常调用,如果可以,则执行launch(url)打开url,而实例中的url是https(http也一样),则在默认浏览器中打开。

3其他

1.拨打电话:

用法和打开默认浏览器差不多,不一样的地方就是url协议,协议格式:tel:<phone number>

例如 url = 'tel:13800138000';

_launchURL() async {
  const url = 'tel:13800138000';
  if (await canLaunch(url)) {
    await launch(url);
  } else {
    throw '不支持拨打电话';
  }
}

2.发送短信:

协议格式:sms:<phone number>

例如 url = 'sms:13800138000';

_launchURL() async {
  const url = 'sms:13800138000';
  if (await canLaunch(url)) {
    await launch(url);
  } else {
    throw '不支持发送短信';
  }
}

3.发送邮件:

协议格式:mailto:<email address>?subject=<subject>&body=<body>

例如 url = 'mailto:superluo666@gmail.com?subject=Test&body=测试跳转发送邮件';

_launchURL() async {
  const url = 'mailto:superluo666@gmail.com?subject=Test&body=测试跳转发送邮件';
  if (await canLaunch(url)) {
    await launch(url);
  } else {
    throw '不支持发送邮件';
  }
}

4.其他跳转协议:

如跳转微信、QQ、高德地图等,都是改变相应的url协议地址即可,跳转原理参照原生开发使用的url scheme,比如一些常用的
微信: weixin://
京东: openapp.jdmoble://
淘宝: taobao://
Chrome: googlechrome://
百度地图: baidumap://
高德地图:androidamap://、iosamap://

5.demo效果:

image

本文GitHub Demo地址:

https://github.com/ChessLuo/flutter_study_app

上一篇下一篇

猜你喜欢

热点阅读