如何通过 Flutter 应用启动 whatsapp 视频通话?

Posted

技术标签:

【中文标题】如何通过 Flutter 应用启动 whatsapp 视频通话?【英文标题】:How to launch whatsapp video call through a flutter app? 【发布时间】:2021-09-19 12:03:32 【问题描述】:

我们可以通过点击 Flutter 应用中的按钮进行 WhatsApp 视频通话吗?

【问题讨论】:

【参考方案1】:

您可以参考WhatsApp官网并使用通用链接(see more)。例如,您可以使用此 URL 发送sample text

const url = "https://wa.me/<number>?text=SAMPLE TEXT";

如果您尝试打开此 URL 并且用户在他/她的手机中有 WhatsApp,则此消息将在此应用程序中打开。您可以用给定的关键字替换text 来拨打电话。

【讨论】:

【参考方案2】:

然后添加此依赖项:

dependencies:
  call_with_whatsapp: ^0.0.1

然后:

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'dart:async';

import 'package:flutter/services.dart';
import 'package:call_with_whatsapp/call_with_whatsapp.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget 
  @override
  _MyAppState createState() => _MyAppState();


class _MyAppState extends State<MyApp> 

  @override
  void initState() 
    super.initState();
  

  void _requestPermission() 
    CallWithWhatsapp.requestPermissions().then((x)
      print("success");
    ).catchError((e)
      print(e);
    );
  

  void _openStore() 
    CallWithWhatsapp.openInPlayStore().then((x)
      print("success");
    ).catchError((e)
      print(e);
    );
  

  void _initiateCall() 
    CallWithWhatsapp.initiateCall("01753230535").then((x)
      print("success");
    ).catchError((e)
      print(e);
    );
  

  void _createNewContact() 
    CallWithWhatsapp.createContact("AAAAA AAAA", "0111111").then((x)
      print("success");
    ).catchError((e)
      print(e);
    );
  

  @override
  Widget build(BuildContext context) 
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body:SafeArea(
          child: Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              crossAxisAlignment: CrossAxisAlignment.center,
              children: <Widget>[
                RaisedButton(
                  onPressed: _requestPermission,
                  child: Text(
                    "Request permission",
                  ),
                ),
                RaisedButton(
                  onPressed: _openStore,
                  child: Text(
                    "Open In Playstore",
                  ),
                ),
                RaisedButton(
                  onPressed: _initiateCall,
                  child: Text(
                    "Initiate Call",
                  ),
                ),
                RaisedButton(
                  onPressed: _createNewContact,
                  child: Text(
                    "Create contact",
                  ),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  



【讨论】:

以上是关于如何通过 Flutter 应用启动 whatsapp 视频通话?的主要内容,如果未能解决你的问题,请参考以下文章

启动应用程序时如何克服此错误?

如何制作透明/显示壁纸的 Flutter 应用

flutter-web - 当应用程序通过浏览器的地址栏以不同的路由启动时,避免 initialRoute 启动?

如何在无需打开应用的情况下后台启动 Flutter 服务?

如何更改 Flutter 上的应用程序启动器图标?

如何在没有主机的情况下启动我的 Flutter 应用程序?