flutter呼び出しシステムの電話、メール、メール機能
2699 ワード
紹介する
アンドロイドのようにintent-actionを設定します.ボタンをクリックすると、システムのダイヤル、メール、メールなどのインタフェースにジャンプできます.効果図:
クラスライブラリの導入
次の図に示すように、プロファイルpubspec.yamlには2つのクラスライブラリが導入されています.
サービスの作成
TelAndSmsService.dart
登録サービスのツールクラスを作成する
ServiceLocator.dart
メインエントリ呼び出しの適用
main.dart
呼び出し電話、メール、メール
view_sample.dart
アンドロイドのようにintent-actionを設定します.ボタンをクリックすると、システムのダイヤル、メール、メールなどのインタフェースにジャンプできます.効果図:
クラスライブラリの導入
url_launcher: ^5.0.3
get_it: ^1.0.3+2
次の図に示すように、プロファイルpubspec.yamlには2つのクラスライブラリが導入されています.
サービスの作成
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{
bool toggle = true;
final TelAndSmsService _service = locator();
final String number = "123456789";
final String email = "[email protected]";
@override
Widget build(BuildContext context) {
// TODO: implement build
return Scaffold(
appBar: AppBar(
title: Text('view page'),
),
body: Container(
child: Column(
children: [
RaisedButton(
child: Text(" "),
onPressed: ()=> _service.call(number)
,
),
RaisedButton(
child: Text(" "),
onPressed: ()=> _service.sendSms(number)
),
RaisedButton(
child: Text(" "),
onPressed: ()=> _service.sendEmail(email)
),
],
),
),
);
}
}