[英]MAUI Webview target="_blank" href redirects not working on android
[英]I'm using a WebView and when click in href with mailto: or tel: dont redirect to nothing in Maui
我已经以这种方式设置了 AndoidManifest.xml,但仍然无法正常工作。 带有 mailto: 或 tel: 的 hrfs 在 Maui 上不要重定向到任何内容 就像什么都没有被点击
例如,如果 WebView 中的页面包含
<a href="tel:+6494461709">61709</a>
当单击某些 href 时,除了 mailto 或 tel,它会以这种方式捕获
private async void MyWebView_Navigating(object sender, WebNavigatingEventArgs e)
{
var link = e.Url.ToUpper();
}
AndoidManifest.xml
<?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" >
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<data android:scheme="mailto"/>
<data android:scheme="tell"/>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
该问题可能是由于在 AndroidManifest.xml 中使用错误的“tel”方案引起的。 电话号码的正确格式是“tel”,而不是“tell”。 此外,您对 ToUpper() 方法使用了错误的外壳。
将AndroidManifest.xml中的代码修改为:
<data android:scheme="tel"/>
并且,在 MyWebView_Navigating 方法中,使用 URL 的原始大小写:
var link = e.Url;
编辑:
private void MyWebView_Navigating(object sender, WebNavigatingEventArgs e)
{
if (e.Url.StartsWith("tel:"))
{
var uri = new Uri(e.Url);
var phoneNumber = uri.AbsoluteUri.Replace("tel:", "");
Device.OpenUri(new Uri(String.Format("tel:{0}", phoneNumber)));
e.Cancel = true;
}
else if (e.Url.StartsWith("mailto:"))
{
var uri = new Uri(e.Url);
var mailTo = uri.AbsoluteUri.Replace("mailto:", "");
Device.OpenUri(new Uri(String.Format("mailto:{0}", mailTo)));
e.Cancel = true;
}
}
// In your MainPage.xaml.cs
MyWebView.Navigating += MyWebView_Navigating;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.