使用Xamarin for visual studio在C#for Android中完成的webview应用程序无法打开whatsapp:url shows net::ERR#u UNKNOWN#url#u SCHEME错误
我用C#for Android,用Xamarin for visual studio制作了一个webview应用程序。当用户点击一个按钮但显示错误net::ERR\u UNKNOWN\u URL\u方案时,应该向whatsapp发布一条消息,请帮助。该url以whatsapp:// 我已经检查过了,但是没有一个符合我的代码 这是我的全部代码我对C#for android非常陌生使用Xamarin for visual studio在C#for Android中完成的webview应用程序无法打开whatsapp:url shows net::ERR#u UNKNOWN#url#u SCHEME错误,c#,webview,xamarin.android,C#,Webview,Xamarin.android,我用C#for Android,用Xamarin for visual studio制作了一个webview应用程序。当用户点击一个按钮但显示错误net::ERR\u UNKNOWN\u URL\u方案时,应该向whatsapp发布一条消息,请帮助。该url以whatsapp:// 我已经检查过了,但是没有一个符合我的代码 这是我的全部代码我对C#for android非常陌生 using System; using Android.App; using Android.Content; usi
using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Webkit;
using Android.Widget;
using Android.OS;
namespace IwI
{
[Activity(Label = "IwI", MainLauncher = true, Theme = "@android:style/Theme.NoTitleBar")]
public class MainActivity : Activity
{
WebView web_view;
protected override void OnCreate(Bundle bundle)
{
RequestWindowFeature(WindowFeatures.NoTitle);
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
web_view = FindViewById<WebView>(Resource.Id.webview);
web_view.Settings.JavaScriptEnabled = true;
web_view.SetWebViewClient(new IwIClient());
web_view.LoadUrl("https://jacidd.com/iwi");
}
public class IwIClient : WebViewClient
{
public override bool ShouldOverrideUrlLoading(WebView view, IWebResourceRequest request)
{
view.LoadUrl(request.Url.ToString());
return false;
}
}
public override bool OnKeyDown(Android.Views.Keycode keyCode, Android.Views.KeyEvent e)
{
if (keyCode == Keycode.Back && web_view.CanGoBack())
{
web_view.GoBack();
return true;
}
return base.OnKeyDown(keyCode, e);
}
}
}
使用系统;
使用Android.App;
使用Android.Content;
使用Android.Runtime;
使用Android.Views;
使用Android.Webkit;
使用Android.Widget;
使用Android.OS;
名称空间IwI
{
[活动(Label=“IwI”,MainLauncher=true,Theme=“@android:style/Theme.NoTitleBar”)]
公共课活动:活动
{
网络视图网络视图;
创建时受保护的覆盖无效(捆绑包)
{
RequestWindowFeature(WindowFeatures.NoTitle);
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
web_view=findviewbyd(Resource.Id.webview);
web_view.Settings.JavaScriptEnabled=true;
SetWebViewClient(新的IwIClient());
web_view.LoadUrl(“https://jacidd.com/iwi");
}
公共类IwIClient:WebViewClient
{
公共覆盖布尔应覆盖EurlLoading(WebView视图、IWebResourceRequest请求)
{
view.LoadUrl(request.Url.ToString());
返回false;
}
}
公共覆盖bool OnKeyDown(Android.Views.Keycode-Keycode,Android.Views.KeyEvent e)
{
if(keyCode==keyCode.Back&&web\u view.CanGoBack())
{
web_view.GoBack();
返回true;
}
返回base.OnKeyDown(keyCode,e);
}
}
}
根据您对我的评论的回复,您可以尝试将您的ShouldOverrideUrlLoading
方法更改为以下方法:
public bool ShouldOverrideUrlLoading(WebView view, string url)
{
if (url != null && url.startsWith("whatsapp://"))
{
view.Context.StartActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
return true;
}
else
{
return false;
}
}
另一个问题也值得一看,它可能会帮助您解决问题。当您出现错误时,它所说的完整URI是什么导致了问题,您是否确实正确地转义了字符?完整url没有人对此有答案,看起来Android的XAMARIN/C是没有为初学者提供社区支持的,应该考虑其他的选择。不用说,你不应该总是期待快速的反应,这完全取决于你的问题,而且是关于谁去看它的标签。有时问题会有一段时间无人回答,直到有经验的人出现。根据您的回复,您需要确保URI在一开始就用https://完全限定,因此它应该是:它以https://开始,一旦有人单击,它更改并以whatsapp://我不知道为什么显示错误严重性代码描述项目文件行抑制状态错误CS1061“Intent”不包含“ACTION\u VIEW”的定义,并且找不到接受“Intent”类型第一个参数的扩展方法“ACTION\u VIEW”(是否缺少using指令或程序集引用?)IwI C:\Users\IT\source\repos\IwI\IwI\MainActivity.cs 36 Activeand:严重性代码描述项目文件行抑制状态错误CS0117'Uri'不包含“解析”IwI C:\Users\IT\source\repos\IwI\IwI\MainActivity的定义。cs 36 Activeand抱歉转换错误代码段我认为xamarin格式有点不同我将查看是否找不到正确的枚举名,并在下一次靠近手机以外的对象时进行调整。