c# - 如何通过 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?
}
}
解决方案
如果安装了 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);
}
}
}
推荐阅读
- google-apps-script - 使用 Google Apps 脚本直接在文件夹中而不是在根文件夹中创建 Google Doc 文件
- xamarin - Xamarin Forms - 选取器设置选定项
- excel - SharePoint Excel 工作簿中的数据透视表
- mongodb - 如何在 mongoDB 中使用通配符字段?
- java - 为什么 Intellij 在多模块 git 项目中显示“幽灵”变化?
- compiler-errors - 解释 NS3Error 并提出任何解决方案?
- xcode - Cordova Build 导致 xcodeBuild 意外退出
- android - 未找到默认活动,即使它已在清单中声明
- ios - UI 测试 Xcode 中的 128 个字符限制
- reactive-programming - 每个请求的 webflux 无限流