首页 > 解决方案 > 如何通过 C#/Xamarin 中 webview 的链接调用 whatsapp?

问题描述

我找到了一些例子,但对于 java。

链接是:

<a href="whatsapp://send?text=message">

MainPage.xaml.cs:

public void Webnav_Navigating(object sender, WebNavigatingEventArgs e)
{
    string url = e.Url;
    if (url.StartsWith("whatsapp://"))
    {
        // what I need here?
     }   
 }

标签: c#androidxamarinxamarin.forms

解决方案


如果安装了 WhatsApp,您只需调用Device.OpenUri

void WebView_Navigating(object sender, WebNavigatingEventArgs e)
{
    var url = e.Url;
    if (url.StartsWith("whatsapp://", StringComparison.InvariantCultureIgnoreCase))
    {
        try
        {
            Device.OpenUri(new Uri(e.Url));
        }
        // Can not catch Android exception type in NetStd/PCL library, so hack it...
        catch (Exception ex) when (ex.Message.StartsWith("No Activity found to handle Intent", StringComparison.InvariantCulture))
        {
            // WhatsApp not installed : Android.Content.ActivityNotFoundException: No Activity found to handle Intent
            Console.WriteLine(ex);
        }
    }
}

推荐阅读