flutter调用系统的打电话、发短信、发邮件功能
2023-09-27 14:28:54 时间
介绍
类似于安卓的通过设置intent-action;
点击按钮就能跳转到系统的拨号,发短信,发邮件等界面。
效果图:
引入类库
url_launcher: ^5.0.3
get_it: ^1.0.3+2
如下图所示:
在配置文件pubspec.yaml中引入两个类库:
创建一个服务
TelAndSmsService.dart
import 'package:url_launcher/url_launcher.dart';
class TelAndSmsService {
void call(String number) => launch("tel:$number");
void sendSms(String number) => launch("sms:$number");
void sendEmail(String email) => launch("mailto:$email");
}
创建一个注册服务的工具类
ServiceLocator.dart
import 'package:get_it/get_it.dart';
import './TelAndSmsService.dart';
GetIt locator = GetIt();
void setupLocator() {
locator.registerSingleton(TelAndSmsService());
}
应用主入口调用
main.dart
import 'package:flutter/material.dart';
import './view_sample.dart';
import 'ServiceLocator.dart';
void main() {
// 注册服务
setupLocator();
// 运行主界面
runApp(ViewSample());
}
调用打电话,发短信,发邮件
view_sample.dart
import 'package:flutter/material.dart';
import 'ServiceLocator.dart';
import 'TelAndSmsService.dart';
class ViewSample extends StatelessWidget{
@override
Widget build(BuildContext context) {
// TODO: implement build
return MaterialApp(
title: 'view add or remove',
theme: ThemeData(
primaryColor: Colors.green,
),
home: ViewPage(),
);
}
}
class ViewPage extends StatefulWidget{
@override
ViewPageState createState() => ViewPageState();
}
class ViewPageState extends State<ViewPage>{
bool toggle = true;
final TelAndSmsService _service = locator<TelAndSmsService>();
final String number = "123456789";
final String email = "12345@example.com";
@override
Widget build(BuildContext context) {
// TODO: implement build
return Scaffold(
appBar: AppBar(
title: Text('view page'),
),
body: Container(
child: Column(
children: <Widget>[
RaisedButton(
child: Text("打电话"),
onPressed: ()=> _service.call(number)
,
),
RaisedButton(
child: Text("发短信"),
onPressed: ()=> _service.sendSms(number)
),
RaisedButton(
child: Text("发邮件"),
onPressed: ()=> _service.sendEmail(email)
),
],
),
),
);
}
}
原文https://segmentfault.com/a/1190000019691815?utm_source=tuicool&utm_medium=referral
相关文章
- 10天用Flutter撸了个高仿携程App,年薪超过80万!
- CSDN开发者周刊第29期: 使用 Flutter 加速应用开发;美团弹性伸缩系统的技术演进与落地实践;用户的网络访问策略还能这么玩
- flutter 使用 url_launcher 唤起三方应用【转】
- 适合编程初学者的开源博客系统(Flutter版)
- Flutter 如何把Widget保存为一张图片
- Flutter Switch开关
- (十二)Flutter 对话框 SimpleDialog AlertDialog BottomSheet snackBar ExpansionPanel
- Flutter 之 自定义路由切换动画
- Flutter Engage China 视频合集
- Flutter混合开发二-FlutterBoost使用介绍
- flutter 抓包使用教程
- flutter框架一文通(二)
- flutter调用系统的打电话、发短信、发邮件功能
- Flutter - 监视页面的切换(RouteObserver & RouteAware))
- Flutter GlobalKey
- Flutter Navigator&Router(导航与路由)