【发布时间】:2018-11-13 07:47:09
【问题描述】:
使用 url_launcher 我可以打开手机拨打号码。
var phone = "+123456789";
launch("tel://$phone");
我怎样才能为 facebook messenger 和 whatsapp 做同样的事情?
【问题讨论】:
使用 url_launcher 我可以打开手机拨打号码。
var phone = "+123456789";
launch("tel://$phone");
我怎样才能为 facebook messenger 和 whatsapp 做同样的事情?
【问题讨论】:
我找到了解决办法。
打开whatsapp:
var whatsappUrl ="whatsapp://send?phone=$phone";
await canLaunch(whatsappUrl)? launch(whatsappUrl):print("open whatsapp app link or do a snackbar with notification that there is no whatsapp installed");
打开 Messenger 或 Facebook:
首先获取短网址
如果您的 Facebook 个人资料是 facebook.com/yourName
facebook url 是 fb.me/yourName 和 messenger url 是 m.me/yourName
然后你做
launch("http://$messengerUrl");
Facebook 网站会自动在应用程序中打开链接,即使它通过 URL 浏览器访问。如果没有安装应用程序,它将转到应用程序/播放商店
【讨论】:
canLaunch 会返回false,尽管如果您仍然启动它,它仍然可以正常工作。
要打开 WhatsApp,您可以使用此插件:https://pub.dartlang.org/packages/flutter_launch
1.将此添加到您的包的 pubspec.yaml 文件中:
dependencies:
flutter_launch: "^0.3.0"
2。安装它
$ flutter packages get
3。导入它
import 'package:flutter_launch/flutter_launch.dart';
4.示例:
await FlutterLaunch.launchWhatsapp(phone: "5534992019999", message: "Hello");
完整示例:https://pub.dartlang.org/packages/flutter_launch#-installing-tab-
【讨论】:
launchWathsApp?在发布包之前仔细检查方法拼写会很棒
导入包url_launcher:
url_launcher: ^6.0.3
导入依赖:
import 'package:url_launcher/url_launcher.dart';
输入你的网址:
const _url = 'https://api.whatsapp.com/...';
创建你的函数:
void _launchURL() async => await canLaunch(_url)
? await launch(_url) : throw 'Not found $_url';
在 Button 中使用示例:
FloatingActionButton(
onPressed: _launchURL,
...
),
这对我有用! :D
【讨论】:
我们可以使用flutter包https://pub.dev/packages/url_launcher
用于发送数字和文本--->
whatsapp://send?phone=XXXXXXXXX&text=Hellothere!
仅用于发送文本 --->
https://api.whatsapp.com/send?text=Hellothere!
【讨论】:
您可以使用 Flutter URL 启动器插件来启动 whatsapp 应用程序。在那里你需要为 android 和 iphone 添加条件。您可以阅读完整的Flutter tutorial here。
安卓版
var whatsappURl_android = "whatsapp://send?phone="+whatsapp+"&text=hello";
苹果手机
var whatappURL_ios ="https://wa.me/$whatsapp?text=${Uri.parse("hello")}";
首先检测手机操作系统版本 - android OR iOS
if(Platform.isIOS){
// for iOS phone only
if( await canLaunch(whatappURL_ios)){
await launch(whatappURL_ios, forceSafariVC: false);
}else{
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: new Text("whatsapp no installed")));
}
}else{
// android , web
if( await canLaunch(whatsappURl_android)){
await launch(whatsappURl_android);
}else{
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: new Text("whatsapp no installed")));
}
}
【讨论】:
import 'package:url_launcher/url_launcher.dart';
void _contactViaWhatsApp(context) async {
String whatsAppUrl = "";
String phoneNumber = 'your-phone-number';
String description = "your-custom-message";
if (Platform.isIOS) {
whatsAppUrl =
'whatsapp://wa.me/$phoneNumber/?text=${Uri.parse(description)}';
} else {
whatsAppUrl =
'https://wa.me/+$phoneNumber?text=${Uri.parse(description)}';
}
if (await canLaunch(whatsAppUrl)) {
await launch(whatsAppUrl);
} else {
final snackBar = SnackBar(
content: Text("Install WhatsApp First Please"),
);
ScaffoldMessenger.of(context).showSnackBar(snackBar);
}
}
【讨论】: