You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MAUI中WebView的mailto/tel链接无法跳转问题求助

MAUI WebView中tel/mailto链接无响应的解决方法

一、修复AndroidManifest.xml的拼写错误

你配置里把电话协议tel误写成了tell,这是核心错误之一,同时建议拆分冲突的intent-filter规则:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <application android:allowBackup="true" 
               android:icon="@mipmap/appicon" 
               android:roundIcon="@mipmap/appicon_round" 
               android:supportsRtl="true"
               android:usesCleartextTraffic="true">
    <activity
          android:exported="true"
          android:name=".activity.MainActivity" >
      <!-- 处理VIEW协议(tel/mailto) -->
      <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <data android:scheme="mailto"/>
        <data android:scheme="tel"/>
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE"/>
      </intent-filter>
      <!-- 单独处理SEND动作,避免规则冲突 -->
      <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
      </intent-filter>
    </activity>
  </application>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
  
</manifest>

二、在WebView的Navigating事件中手动拦截处理链接

MAUI WebView默认不会自动处理非HTTP/HTTPS协议的链接,需要手动拦截并调用系统应用打开:

private async void MyWebView_Navigating(object sender, WebNavigatingEventArgs e)
{
    var url = e.Url;
    // 匹配tel或mailto协议
    if (url.StartsWith("tel:", StringComparison.OrdinalIgnoreCase) || 
        url.StartsWith("mailto:", StringComparison.OrdinalIgnoreCase))
    {
        // 取消WebView默认导航行为
        e.Cancel = true;
        // 调用系统对应应用打开链接
        if (await Launcher.CanOpenAsync(new Uri(url)))
        {
            await Launcher.OpenAsync(new Uri(url));
        }
    }
}

三、确认WebView事件绑定

确保XAML中WebView已正确绑定Navigating事件:

<WebView x:Name="MyWebView" Navigating="MyWebView_Navigating" />

内容的提问来源于stack exchange,提问作者Amadeu Antunes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 06:00:47