美文网首页Flutter圈子FlutterFlutter中文社区
Flutter 如何快速打开第三方应用

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

作者: 程序猿在广东 | 来源:发表于2019-11-03 22:25 被阅读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

    相关文章

      网友评论

        本文标题:Flutter 如何快速打开第三方应用

        本文链接:https://www.haomeiwen.com/subject/ziglbctx.html